(검색) Linux 검색 명령어 요약

Linux find 명령은 가장 일반적으로 사용되는 명령 중 하나입니다.

다만 옵션이 다양하다 보니 사용법이 쉽지 않고 서버 개발에서 많이 사용하는 명령어이다.
따로 정리하는 것도 좋을 것 같아서 정리하겠습니다.

찾기 명령
Linux find 명령은 Linux 파일 시스템에서 파일을 검색하는 명령입니다.
다양한 표현을 사용하여 원하는 파일 목록을 추출할 수 있습니다.

하나
2
4
찾다 (노선) (가능성) (표현)
# 현재 위치에서 로그를 포함하는 모든 파일 찾기
찾다. “*규약*”
CS

가능성

  • P : 심볼릭 링크를 따르지 말고 심볼릭 링크 정보 자체를 사용하십시오.
  • L: 심볼릭 링크와 관련된 파일에 대한 정보를 사용합니다.
  • H : 명령줄 인수를 처리할 때를 제외하고 기호 링크를 따르지 마십시오.
  • D: 디버그 메시지 출력.

노선

find의 인수 값으로 경로를 사용합니다. 상대경로와 절대경로 모두 가능하며 대부분의 리눅스의 경우 이 경로 인자 값을 생략하면 현재 위치(.)가 입력된 것으로 간주한다. 그러나 이 경로를 입력하지 않으면 Unix에서 명령이 실패합니다.

표현

  • 이름: 이 이름을 가진 파일을 찾습니다. 이 이름에 정규식을 사용할 수 있습니다.
  • 유형: 지정된 파일 유형과 일치하는 파일 검색
  • user : 사용자가 소유한 파일 검색
  • empty : 크기가 0인 빈 디렉터리 또는 파일을 검색합니다.
  • 삭제: 검색된 파일 또는 디렉토리를 삭제합니다.
  • exec: 검색된 파일에서 지정된 명령을 실행합니다.
  • 경로 : 지정된 문자열 패턴과 일치하는 경로에서 검색합니다.
  • 인쇄: 검색 결과를 인쇄합니다. 검색어는 줄 바꿈으로 구분됩니다. (기본값)
  • print0 : 검색 결과를 출력합니다. 검색 항목은 0으로 구분됩니다.
  • size : 파일 크기를 기준으로 파일을 검색합니다.
  • mindepth: 검색을 시작할 하위 디렉터리의 최소 깊이를 지정합니다.
  • maxdepth: 검색할 하위 디렉터리의 최대 깊이를 지정합니다.
  • atime : n일 이내에 액세스한 파일을 찾습니다.
  • ctime : n일 이내에 생성된 파일을 찾습니다.
  • mtime : n일 이내에 수정된 파일을 찾습니다.
  • cnewer 파일: 이 파일보다 최근에 수정된 파일을 찾습니다.

find 명령은 다른 명령과 달리 옵션이 거의 없으며 이 표현식을 사용하여 찾을 대상을 결정합니다. 이 식은 대상 범위를 더 줄이기 위해 중첩될 수도 있습니다.

Linux를 사용한 예

파일 이름으로 검색(-name 옵션)

네이밍 옵션으로 특정 문자열이 포함된 제목을 가진 파일을 찾을 때 사용하며, 많이 사용하기 때문에 사용법을 익히시면 좋습니다.

하나
2
4
5
6
7
8일
9
10
11
12
13
14
# 현재 디렉토리에서 test가 포함된 파일 찾기
찾다. “*시험*”
# 현재 디렉토리에서 확장자가 .txt인 모든 파일 찾기
찾다. “*.txt”
# 현재 디렉터리에서 확장자가 .txt인 파일을 검색하고 모두 삭제합니다.
찾다. “*.txt” 끄다
# 현재 디렉토리에서 test로 시작하는 파일 찾기
찾다. “시험*”
# 현재 디렉토리에서 확장자가 test인 파일 찾기
찾다. “*시험”
CS

유형별 검색(-유형)

하나
2
4
5
6
7
8일
# 현재 디렉토리에서 모든 디렉토리 찾기
찾다. 유형 d
# 현재 디렉토리에서 테스트가 포함된 디렉토리 찾기
찾다. “*시험*” 유형 d
# 현재 디렉토리에서 모든 파일 찾기
찾다. 유형 f
CS

유형별로 검색할 수도 있습니다. B. 폴더 또는 디렉토리.
특정 파일 형식만 별도로 추출할 수도 있습니다.

  • 디: 디렉토리
  • f : 공통 파일
  • l : 심볼릭 링크

파일 크기로 검색(-empty, -size)

하나
2
4
5
6
7
8일
9
10
11
12
13
14
15
16
17
# 현재 디렉토리에서 비어 있거나 크기가 0인 파일 검색
찾다. 비어 있는
# 현재 디렉터리에서 test 또는 크기가 0인 파일이 있는 빈 디렉터리를 찾아 삭제합니다.
찾다. “*시험*” 비어 있는 끄다
# 현재 디렉토리에서 1024 바이트의 파일 찾기
찾다. 크기 1024c
# 현재 디렉토리에서 1024바이트보다 큰 파일 검색
찾다. 크기 +1024c
# 현재 디렉토리에서 1024바이트보다 작은 파일 검색
찾다. 크기 1024c
# 현재 디렉토리에서 1kb보다 크고 10kb보다 작은 파일 검색
찾다. 크기 +1k 크기 10k
CS

빈 파일이나 파일 크기를 확인하는 데 사용할 수 있습니다.

  • b: 블록 단위
  • c:바이트
  • k : 킬로바이트
  • w : 2바이트 워드

검색된 파일에 대해 추가 명령 실행(-exec)

하나
2
4
5
6
7
8일
# 현재 디렉토리에서 “시험”자세한 정보가 포함된 파일을 찾아 인쇄하십시오.
찾다. “*시험*” ls 실행 l {} \;
# 현재 디렉토리의 파일에서 “시험”맞는 것을 찾아라
찾다. 유형 f grep 실행 “시험” {} \;
# 현재 디렉토리에서 “.txt” 확장 프로그램을 찾아 모두 삭제
찾다. “*.txt” exec rm {} \;
CS

find의 검색 결과로 특정 명령을 실행할 수도 있습니다.
-exec 명령을 사용하여 {} \;
이런 식으로 사용할 수 있습니다.