기계적 인조 인간

커맨드 라인을 사용하여 리눅스에서 파일을 찾는 방법

my 2th clip

my 2th clip

차례:

Anonim

find 명령은 Linux 시스템 관리자에게 가장 강력한 도구 중 하나입니다. 사용자 지정된 표현식을 기반으로 디렉토리 계층에서 파일 및 디렉토리를 검색하고 일치하는 각 파일에 대해 사용자 지정 조치를 수행 할 수 있습니다.

find 명령을 사용하여 권한, 유형, 날짜, 소유권, 크기 등을 기준으로 파일 및 디렉토리를 검색 할 수 있습니다. grep 또는 sed 와 같은 다른 도구와 함께 사용할 수도 있습니다.

Linux find 명령 구문

find 명령의 일반적인 구문은 다음과 같습니다.

find

  • options 속성은 심볼릭 링크, 디버깅 옵션 및 최적화 방법의 처리를 제어합니다. path… 속성은 find가 파일을 검색 할 시작 디렉토리를 정의합니다. expression 속성은 옵션, 검색 패턴 및 연산자로 구분 된 작업.

디렉토리에서 파일을 검색하려면 find 명령을 호출하는 사용자에게 해당 디렉토리에 대한 읽기 권한이 있어야합니다.

다음 예제를 보자.

find -L /var/www -name "*.js"

  • -L (옵션) 옵션은 find 명령이 기호 링크를 따르도록 지시합니다. /var/www (경로…)는 검색 될 디렉토리를 지정합니다. .js (자바 스크립트 파일).

이름으로 파일 찾기

이름으로 파일을 찾는 것이 find 명령의 가장 일반적인 용도 일 것입니다. 파일 이름을 사용하여 파일을 찾으려면 -name 옵션은 검색중인 파일 이름을 따릅니다.

예를 들어, /home/linuxize 디렉토리에서 document.pdf 라는 파일을 검색하려면 다음 명령을 사용하십시오.

find /home/linuxize -type f -name document.pdf

대소 문자를 구분하지 않는 검색을 실행하려면 -name 옵션을 -iname 변경하십시오.

find /home/linuxize -type f -iname document.pdf

위의 명령은 "Document.pdf", "DOCUMENT.pdf"등과 일치합니다.

확장자별로 파일 찾기

확장자로 파일을 검색하는 것은 이름으로 파일을 검색하는 것과 같습니다. 예를 들어, /var/log/nginx 디렉토리에서 .log.gz 끝나는 모든 파일을 찾으려면 다음을 사용할 수 있습니다.

find /var/log/nginx -type f -name '*.log.gz'

와일드 카드 문자를 사용할 때는 셸에서 해석되지 않도록 패턴을 인용하거나 백 슬래시 ( * 별표 * 기호를 이스케이프해야합니다.

정규식 *.log.gz 와 일치하지 않는 모든 파일을 찾으려면 -not 옵션을 사용할 수 있습니다. 예를 들어 *.log.gz 끝나지 않는 모든 파일을 찾으 *.log.gz 다음을 사용하십시오.

find /var/log/nginx -type f -not -name '*.log.gz'

유형별로 파일 찾기

때로는 일반 파일, 디렉토리 또는 심볼릭 링크와 같은 특정 파일 유형을 검색해야 할 수도 있습니다. Linux에서는 모든 것이 파일입니다.

유형에 따라 파일을 검색하려면 -type 옵션과 다음 설명자 중 하나를 사용하여 파일 유형을 지정하십시오.

  • f : 일반 파일 d : 디렉토리 l : 기호 링크 c : 문자 장치 b : 블록 장치 p : 명명 된 파이프 (FIFO) s : 소켓

예를 들어, 현재 작업 디렉토리에서 모든 디렉토리를 찾으려면 다음을 사용하십시오.

find. -type d

일반적인 예는 chmod 명령을 사용하여 웹 사이트 파일 권한을 644 , 디렉토리 권한을 755 로 재귀 적으로 변경하는 것입니다.

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

크기별로 파일 찾기

파일 크기를 기준으로 파일을 찾으려면 크기 기준과 함께 -size 매개 변수를 전달하십시오. 다음 접미사를 사용하여 파일 크기를 지정할 수 있습니다.

  • b : 512 바이트 블록 (기본값) c : 바이트 w : 2 바이트 단어 k : 킬로바이트 M : 메가 바이트 G : 기가 바이트

다음 명령은 /tmp 디렉토리에서 정확히 1024 바이트의 모든 파일을 찾습니다.

find /tmp -type f -size 1024c

find 명령을 사용하면 지정된 크기보다 크거나 작은 파일을 검색 할 수도 있습니다.

다음 예제에서는 현재 작업 디렉토리에서 1MB 미만의 모든 파일을 검색합니다. 크기 값 앞에 빼기 - 기호가 표시됩니다.

find. -type f -size -1M

find. -type f -size +1M

크기 범위 내에서 파일을 검색 할 수도 있습니다. 다음 명령은 2MB 사이의 모든 파일을 찾습니다.

find. -type f -size +1M -size 21M

수정 날짜별로 파일 찾기

find 명령은 마지막 수정, 액세스 또는 변경 시간을 기반으로 파일을 검색 할 수도 있습니다.

크기별로 검색 할 때와 동일하게 "보다 큼"또는 "보다 작음"에 더하기 및 빼기 기호를 사용하십시오.

며칠 전에 비둘기장 구성 파일 중 하나를 수정했지만 어느 것을 잊어 버렸다고 가정 해 봅시다. /etc/dovecot/conf.d 디렉토리에서 .conf 끝나고 지난 5 일 동안 다음을 사용하여 수정 한 모든 파일을 쉽게 필터링 할 수 있습니다.

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

다음은 -daystart 옵션을 사용하여 수정 날짜를 기준으로 파일을 필터링하는 다른 예입니다. 아래 명령은 30 일 이상 전에 수정 된 /home 디렉토리의 모든 파일을 나열합니다.

find /home -mtime +30 -daystart

권한별로 파일 찾기

-perm 옵션을 사용하면 파일 권한에 따라 파일을 검색 할 수 있습니다.

예를 들어, /var/www/html 디렉토리에서 정확히 775 권한을 가진 모든 파일을 찾으려면 다음을 사용하십시오.

find /var/www/html -perm 644

숫자 모드 앞에 빼기 - 또는 슬래시 / 붙일 수 있습니다.

슬래시 / 가 접두사로 사용되면 적어도 하나의 범주 (사용자, 그룹 또는 기타)에 파일이 일치하도록 설정된 각 비트가 있어야합니다.

다음 예제 명령을 고려하십시오.

find. -perm /444

위 명령은 사용자, 그룹 또는 다른 사용자에 대해 읽기 권한이 설정된 모든 파일과 일치합니다.

빼기 - 접두사로 사용하는 경우 파일이 지정된 비트와 일치하도록 설정해야합니다. 다음 명령은 소유자 및 그룹에 대한 읽기 및 쓰기 권한이 있고 다른 사용자가 읽을 수있는 파일을 검색합니다.

find. -perm -664

소유자 별 파일 찾기

특정 사용자 또는 그룹이 소유 한 파일을 찾으려면 -user -group 옵션을 사용하십시오.

예를 들어, linuxize 사용자가 소유 한 모든 파일 및 디렉토리를 검색하려면 다음을 실행하십시오.

find / -user linuxize

다음은 실제 예입니다. www-data 사용자가 소유 한 모든 파일을 찾고 일치하는 파일의 소유권을 www-data 에서 nginx 변경한다고 가정 해 봅시다.

find / -user www-data -type f -exec chown nginx {} ;

파일 찾기 및 삭제

일치하는 모든 파일을 삭제하려면 일치 표현식 끝에 -delete 옵션을 추가하십시오.

결과가 삭제하려는 파일과 일치한다고 확신 할 때만이 옵션을 사용하십시오. -delete 옵션을 사용하기 전에 항상 일치하는 파일을 인쇄하는 것이 좋습니다.

예를 들어 /var/log/ 에서 .temp 로 끝나는 모든 파일을 삭제하려면 다음을 사용하십시오.

find /var/log/ -name `*.temp` -delete 주의해서 -delete 옵션을 사용하십시오. find 명령 행은 표현식으로 평가되며 -delete 옵션을 먼저 추가하면 명령이 지정한 시작점 아래의 모든 항목을 삭제합니다.

디렉토리와 관련하여 find rmdir 과 동일한 빈 디렉토리 만 삭제할 find 있습니다.

결론

다양한 옵션과 기준으로 find 명령을 사용하는 방법을 보여주었습니다.

이 기사는 Linux 시스템에서 파일을 찾는 방법에 대한 기본적인 이해를 제공합니다. find 맨 페이지를 방문하여 find 명령의 다른 모든 강력한 옵션에 대해 읽을 수도 있습니다.

터미널 찾기