.png)
Linux의 Find 명령(파일 및 디렉토리 찾기)
find
명령은 Linux 시스템 관리자 라이브러리에서 가장 강력한 도구 중 하나입니다.이것은 사용자가 지정한 표현식에 따라 디렉터리 차원 구조에서 파일과 디렉터리를 검색하고 일치하는 모든 파일에 대해 사용자가 지정한 작업을 수행할 수 있습니다.find
명령을 사용하여 파일 및 디렉토리의 권한, 유형, 날짜, 소유권, 크기 등을 기준으로 검색할 수 있습니다. grep
과 같은 다른 도구와 결합하여 사용할 수 있다또는
sed
.
명령 구문 찾기
명령의 일반 문법은 다음과 같다.find [options] [path...] [expression]
find
속성 제어 기호 링크의 처리, 디버깅 옵션과 최적화 방법이다.options
속성 정의find 검색 파일의 시작 디렉터리입니다.path...
속성은 옵션, 검색 모드와 조작부호로 구분된 조작으로 구성되어 있습니다.expression
명령을 호출하는 사용자가 이 디렉터리에 대한 읽기 권한을 가져야 합니다.다음 예시를 살펴보겠습니다. find -L /var/www -name "*.js"
find
(옵션) 은 -L
명령이 기호 링크를 따르도록 알려 줍니다.find
(경로...) 검색할 디렉토리를 지정합니다./var/www
은 -name "*.js
으로 끝나는 파일(JavaScript 파일)을 검색하는 것을 알려줍니다.이름으로 파일 찾기
이름으로 파일을 찾는 것은find
명령에서 가장 자주 사용하는 방법일 수 있습니다.파일 이름으로 파일을 찾으려면 .js
옵션을 사용하고 검색할 파일 이름을 따라가십시오.예를 들어 find
디렉터리에서 -name
이라는 파일을 검색하려면 다음과 같은 명령을 사용할 수 있습니다. find /home/ -type f -name document.pdf
에서 대소문자를 구분하지 않는 검색을 실행하려면 document.pdf
: find /home/ -type f -iname document.pdf
위의 명령을 변경하면 "Document.pdf", "Document.pdf"와 일치합니다.등. 확장자별 파일 찾기
은 확장자별로 파일을 검색하는 것과 이름별로 파일을 검색하는 것과 같습니다.예를 들어/home/
디렉터리에서 -name
으로 끝나는 모든 파일을 찾으려면: find /var/log/nginx -type f -name '*.log.gz'
을 입력할 수 있습니다. 중요한 것은 이 모드를 인용하거나 반사봉 -iname
의 별표 .log.gz
을 사용해야 합니다. 어댑터를 사용할 때 셸에 설명되지 않도록 해야 합니다.regex /var/log/nginx
과 일치하지 않는 모든 파일을 찾으려면 *
옵션을 사용하십시오.예를 들어, \
으로 끝나지 않는 모든 파일을 찾으려면: find /var/log/nginx -type f -not -name '*.log.gz'
유형별 파일 찾기
을 사용하여 일반 파일, 디렉터리 또는 기호 링크와 같은 특정 파일 형식을 검색해야 할 수도 있습니다.Linux에서는 모든 내용이 하나의 파일입니다.파일 형식에 따라 파일을 검색하려면*.log.gz
옵션과 다음 설명자 중 하나를 사용하여 파일 형식을 지정합니다. -not
: 일반 파일 *.log.gz
: 디렉터리 -type
: symbolic link f
: 블록 장치 d
: 명명예를 들어, 파이프(FIFO) l
: current working directory의 모든 디렉토리를 찾기 위해 소켓 , 당신은 사용할 수 있습니다:
find . -type d
의 흔한 예는 c
을 사용하여 귀속적으로 사이트 파일 권한을 b
으로 변경하고 디렉터리 권한을 p
으로 변경하는 것입니다명령:
find /var/www/my_website -type d -exec chmod 0755 {} \;
find /var/www/my_website -type f -exec chmod 0644 {} \;
크기별 파일 찾기
파일 크기에 따라 파일을 찾으려면s
매개 변수와 크기 표준을 전달하십시오.다음 접두사를 사용하여 파일 크기를 지정할 수 있습니다: 644
: 512 바이트 블록(기본값) 755
: 바이트 chmod
: 두 바이트 -size
: KB b
: MB c
: GB 이하 명령w
디렉터리에서 k
바이트의 모든 파일을 찾을 수 있습니다: find /tmp -type f -size 1024c
M
명령을 사용하면 files that are greater을 검색할 수 있습니다또는 지정된 크기보다 작습니다.(adsbygoogle=window.adsbygoogle | |[]).푸시({});다음 예제에서는 현재 작업 디렉토리에서
G
미만의 모든 파일을 검색합니다.크기 값 find . -type f -size -1M
이전에 1024
기호가 감량되었음을 주의하십시오. /tmp
보다 큰 파일을 검색하려면 find
기호를 추가해야 합니다. find . -type f -size +1M
크기 범위 내의 파일을 검색할 수도 있습니다.다음 명령은 1MB
과 -
사이의 모든 파일을 찾습니다: find . -type f -size +1M -size 21M
수정 날짜에 따라 파일 찾기
1MB
명령은 파일의 마지막 수정, 접근 또는 변경 시간에 따라 파일을 검색할 수 있습니다.크기별로 검색할 때와 마찬가지로 더하기 기호와 빼기 기호를 사용하여 보다 크거나 작음을 나타냅니다.며칠 전에 Dovecot 프로필을 수정했지만 어느 파일인지 잊어버렸다고 가정하십시오.+
디렉터리에 있는 모든 파일을 쉽게 선별할 수 있습니다. 이 디렉터리는 1
으로 끝났고 지난 5일 동안 수정되었습니다. find /etc/dovecot/conf.d -name "*.conf" -mtime 5
은 2MB
옵션을 사용하여 수정 날짜에 따라 파일을 선별하는 또 다른 예입니다.다음 명령은 find
디렉터리에서 /etc/dovecot/conf.d
또는 며칠 전에 수정된 모든 파일을 보여 줍니다. find /home -mtime +30 -daystart
권한별 파일 찾기
.conf
옵션을 사용하면 파일 권한에 따라 파일을 검색할 수 있습니다.예를 들어 -daystart
디렉터리에서 /home
에 해당하는 모든 파일을 찾으려면: find /var/www/html -perm 644
을 사용하면 숫자 모드 앞에 -30
또는 슬래시 -perm
을 추가할 수 있습니다.슬래시 775
을 접두사로 사용할 때 파일이 일치하도록 최소한 하나의 카테고리(사용자, 그룹 또는 기타)가 해당 비트를 설정해야 합니다.다음 명령 예시를 고려하십시오. find . -perm /444
상기 명령은 사용자, 그룹 또는 다른 사용자에게 읽기 권한을 설정한 모든 파일과 일치합니다.-/var/www/html
을 접두사로 사용하는 경우 파일을 일치시키려면 최소한 지정된 비트를 설정해야 합니다.다음 명령은 소유자와 그룹에 대한 읽기 및 쓰기 권한이 있고 다른 사용자가 읽을 수 있는 파일을 검색합니다. find . -perm -664
소유자별 파일 찾기
파일 owned 찾기특정 사용자 또는 그룹의 경우
-
및 /
옵션을 사용합니다.예를 들어 사용자 /
이 가지고 있는 모든 파일과 디렉터리를 검색하려면 find / -user
을 실행할 수 있습니다. 이것은 실제 예입니다.사용자 -
이 소유한 모든 파일을 찾고 일치하는 파일의 소유권을 -user
에서 -group
으로 변경한다고 가정하면 find / -user www-data -type f -exec chown nginx {} \;
파일 찾기 및 삭제
에서 모든 일치하는 파일을 삭제하려면
옵션을 일치하는 표현식의 끝에 추가하십시오.이 옵션은 삭제할 파일과 결과가 일치한다고 확신할 때만 사용됩니다.www-data
옵션을 사용하기 전에 일치하는 파일을 인쇄하는 것이 좋습니다.예를 들어 www-data
에서 nginx
으로 끝나는 모든 파일을 삭제하려면: find /var/log/ -name `*.temp` -delete
을 사용하십시오. -delete
옵션을 매우 조심스럽게 사용하십시오.-delete
명령은 표현식으로 계산되며, .temp
옵션을 추가하면 지정한 시작점 이하의 모든 내용을 삭제합니다.디렉터리에 대해 /var/log/
은 -delete
과 같은 빈 디렉터리만 삭제할 수 있습니다.
결론
우리는find
명령을 각종 옵션과 조건과 함께 사용하는 방법을 보여 드렸습니다.본고는 리눅스 시스템에서 파일을 어떻게 포지셔닝하는지에 대해 기본적인 이해를 제공해야 합니다. -delete
man page에 액세스할 수 있습니다.find
명령에 대한 기타 모든 강력한 옵션을 읽습니다.질문이나 의견이 있으시면 아래에 메시지를 남겨 주십시오.