파일 찾기(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와 같은 파일을 리턴합니다.변경 끝