파일 찾기(find 명령)

find 명령을 사용하여 디렉토리 트리에서 지정된 각 경로를 반복적으로 검색하여 다음 텍스트에 제공된 용어를 사용하여 작성된 부울 표현식과 일치하는 파일을 찾습니다.

find 명령의 출력은 Expression 매개변수에 지정된 용어에 따라 다릅니다.

다음은 find 명령을 사용하는 방법에 대한 예제입니다.
  • 파일 시스템에서 .profile이라는 이름을 가진 모든 파일을 나열하려면 다음을 입력하십시오.
    find / -name .profile
    전체 파일 시스템을 검색하여 .profile이라는 이름을 가진 모든 파일의 전체 경로 이름을 씁니다. 슬래시(/)는 find 명령이 /(root) 디렉토리 및 모든 서브디렉토리를 검색함을 나타냅니다.

    시간을 절약하려면, 디렉토리를 지정하여 검색을 제한하십시오.

  • 현재 디렉터리와 그 하위 디렉터리에 있는 파일 이름이 ' test 인 모든 파일에 대해 대소문자를 구분하지 않는 검색 작업을 수행하려면 다음 명령을 입력합니다:
    find . -iname test
  • 현재 디렉토리 트리에서 0600의 특정 허용 코드를 갖는 파일을 나열하려면 다음을 입력하십시오.
    find . -perm 0600
    소유자 읽기 및 소유자 쓰기 권한 있는 파일 이름이 나열됩니다. 점(.)은 find 명령이 현재 디렉토리 및 서브디렉토리를 검색함을 나타냅니다. 허용 코드의 설명은 chmod 명령을 참조하십시오.
  • 특정 허용 코드를 갖는 파일을 여러 디렉토리에서 검색하려면 다음을 입력하십시오.
    find manual clients proposals -perm -0600
    소유자-읽기와 소유자-쓰기 권한과 가능하면 다른 사용 권한을 가지는 파일의 이름을 나열합니다. manual, clientsproposals 디렉토리 및 해당 서브디렉토리가 검색됩니다. 위 예제에서는 -perm 06000600과 정확히 대응하는 허용 코드가 있는 파일만 선택합니다. 다음 예에서는 -perm -06000600이 나타내는 액세스 및 0600 레벨 이상의 액세스를 허용하는 허용 코드를 갖는 파일을 선택합니다. 이는 허용 코드 0622와 2744도 일치합니다.
  • 현재 디렉토리에서 현재 24시간 동안 변경된 모든 파일을 나열하려면 다음을 입력하십시오.
    find . -ctime 1 
  • 복수 링크를 가진 보통 파일을 검색하려면 다음을 입력하십시오.
    find . -type f -links +1
    링크가 두 개 이상(-links +1)인 원래 파일(-type f)의 이름이 나열됩니다.
    주: 모든 디렉토리에는 최소 두 개의 링크가 있습니다. 상위 디렉토리의 항목과 자체 .(점) 항목입니다. 여러 파일 링크에 대한 자세한 정보는 ln 명령을 참조하십시오.
  • 길이가 정확히 414바이트인 모든 파일을 검색하려면 다음을 입력하십시오.
    find . -size 414c 
  • 루트 디렉터리와 그 하위 디렉터리의 모든 파일에 대해 대소문자를 구분하지 않는 검색 작업을 수행하려면 파일 이름에 문자열 ' main '이 포함되어 있고 확장자가 알파벳 ' o'로 끝나는 길이인 모든 파일에 대해 다음 명령을 입력합니다:
    find / -iname "*main*.*o"
    이 명령의 검색 결과는 ' main.o, ' app_main.c.o' , ' mAin.O' 또는 ' APP_MAIN.o' 와 같은 파일을 반환합니다.
  • 루트 디렉터리와 그 하위 디렉터리에서 파일 이름이 ' main ' 문자열을 포함하고 확장자가 한 자로 되어 있는 모든 파일에 대해 대소문자를 구분하지 않는 검색 작업을 수행하려면 다음 명령을 입력합니다:
    find / -iname "*main*.?"
    이 명령의 검색 결과는 ' main.c, ' app_main.o' , ' MAIN.c' 또는 ' App_main.o' 와 같은 파일을 반환합니다.
  • 루트 디렉터리와 그 하위 디렉터리의 확장자가 ' .T인 모든 파일에 대해 대소문자를 구분하지 않는 검색 작업을 수행하려면 다음 명령어를 입력합니다(뒤에 아무 문자나 하나, 알파벳 ' t'):
    find / -iname "*.T?t"
    이 명령의 검색 결과는 ' file.T1t, ' log.Tot' , ' file.txt' , ' log.tot' 또는 ' log.toT' 와 같은 파일을 반환합니다.
  • 루트 디렉터리와 그 하위 디렉터리의 확장자가 ' .Sh, ' .md' , ' .Sd' 또는 ' .mh' 인 모든 파일에 대해 대소문자를 구분하지 않는 검색 작업을 수행하려면 다음 명령을 입력합니다:
    find / -iname "*.[Sm][hd]"
    이 명령의 검색 결과는 ' readme.sh, ' logo.md' , ' logo.sd' , ' readme.mh' , ' readme.SH' , ' logo.mD' 와 같은 파일을 반환합니다.