일반적인 형식: find pathname -options [-print -exec -ok]
예:
find / -name filename 루트 디렉터리에서 filename이라는 파일을 검색합니다. name filename
find /etc -name *s* 디렉토리에서 s로 끝나는 파일 검색
find /etc -name *S 디렉토리에서 s로 끝나는 파일 검색
find /etc -name s* 디렉토리에서 s로 시작하는 파일 검색
find / -amin -10 시스템에서 지난 10분 동안 액세스한 파일 검색
find / -atime -2 시스템에서 지난 48시간 동안 액세스한 파일 찾기
find / -empty 시스템에서 빈 파일이나 폴더 찾기
find / -group groupname 시스템에서 groupname에 속하는 파일 찾기
find / -mmin -5 시스템에서 지난 5분 동안 수정된 파일 찾기 system 파일
find / -mtime -1 시스템에서 지난 24시간 동안 수정된 파일 찾기
find /-nouser 시스템에서 무료 사용자에게 속한 파일 찾기
find / -user 사용자 이름 system 사용자 이름에 속한 파일
find / -ctime -1 지난 24시간 동안 시스템에서 상태가 변경된 파일을 찾습니다.
find / -fstype type 시스템에서 파일 형식을 찾으십니까?
find / -user user1name -or -user user2name 시스템에서 user1name 또는 user2name에 속하는 파일을 찾습니다.
find / -user user1name -and -user2name 시스템 파일에서 user1name과 user2name에 모두 속하는 파일을 찾습니다.
1. 찾기 명령 형식
1. 찾기 명령의 일반적인 형식은
find pathname -options [-print -exec -ok ...]
2. command;
pathname: find 명령어로 검색한 디렉터리 경로입니다. 예를 들어, 현재 디렉터리를 나타내려면 .을 사용하고 시스템 루트 디렉터리를 나타내려면 .
-print: find 명령은 일치하는 파일을 표준 출력으로 출력합니다.
-exec: find 명령은 일치하는 파일에서 이 매개변수에 의해 제공된 쉘 명령을 실행합니다. 해당 명령은 'command' { } /; 형식이므로, { }와 /; 사이의 공백에 주의하세요.
-ok: 각 명령을 실행하기 전에 사용자에게 실행 여부를 확인하는 프롬프트가 표시됩니다.
3. 명령 옵션 찾기
-name
파일 이름으로 파일을 검색합니다.
-perm
권한에 따라 파일을 찾습니다.
-prune
find 명령이 현재 지정된 디렉터리에서 검색하는 것을 방지하려면 이 옵션을 사용하세요. -length 옵션도 사용되는 경우 find 명령에서 -prune이 무시됩니다.
-user
소유자를 기준으로 파일을 검색합니다.
-group
파일이 속한 그룹별로 파일을 찾습니다.
-mtime -n +n
변경 시간에 따라 파일을 찾습니다. -n은 파일 변경 시간이 지금부터 n일 이내임을 의미하고, +n은 파일 변경 시간이 지금부터 n일 전임을 의미합니다. . find 명령에는 -atime 및 -ctime 옵션도 있지만 -m time 옵션과 동일합니다.
-nogroup
자신이 속한 유효한 그룹이 없는 파일, 즉 파일이 속한 그룹이 /etc/groups에 존재하지 않는 파일을 찾습니다.
-nouser
유효한 소유자가 없는 파일을 찾습니다. 즉, 파일 소유자가 /etc/passwd에 존재하지 않습니다.
-newer file1 !file2
변경 시간이 file1보다 최신이지만 file2보다 오래된 파일을 찾습니다.
-type
다음과 같은 특정 유형의 파일을 찾습니다.
b - 장치 파일 차단.
d - 디렉토리.
c - 캐릭터 장치 파일.
p - 파이프 파일.
l - 심볼릭 링크 파일.
f - 일반 파일.
-size n: [c] 파일 길이가 n 블록인 파일을 찾습니다. c를 사용하면 파일 길이는 바이트 단위입니다.
-깊이: 파일을 찾을 때 먼저 현재 디렉터리에서 파일을 찾은 다음 해당 하위 디렉터리에서 파일을 찾습니다.
-fstype: 특정 유형의 파일 시스템에 있는 파일을 찾습니다. 이러한 파일 시스템 유형은 일반적으로 구성 파일 /etc/fstab에서 찾을 수 있습니다. 이 구성 파일에는 이 시스템의 파일 시스템에 대한 정보가 포함되어 있습니다.
-mount: 파일 검색 시 파일 시스템 마운트 지점을 넘지 마세요.
-follow: find 명령이 심볼릭 링크 파일을 발견하면 링크가 가리키는 파일을 따릅니다.
-cpio: 일치하는 파일에 대해 cpio 명령을 사용하여 해당 파일을 테이프 장치에 백업합니다.
또한 다음 세 가지의 차이점은 다음과 같습니다.
-amin n
시스템에서 최근 N분 동안 액세스한 파일 찾기
-atime n
마지막 n* 동안 액세스한 파일 찾기 시스템에서 24시간
-cmin n
시스템에서 최근 N분 동안 파일 상태가 변경된 파일 찾기
-ctime n
최근에 파일 상태가 변경된 파일 찾기 n*시스템에서 24시간
-mmin n
시스템에서 지난 N분 동안 파일 데이터가 변경된 파일 찾기
-mtime n
파일 데이터가 변경된 파일 찾기 시스템의 마지막 n*24시간
4. exec 또는 ok를 사용하여 쉘 명령 실행
find를 사용할 경우 원하는 작업을 파일에 작성하기만 하면 되며 exec를 사용하여 find에 협력할 수 있습니다. .매우 편리합니다.
일부 운영 체제에서는 ls 또는 ls -l과 같은 명령을 실행하는 데 -exec 옵션만 허용됩니다. 대부분의 사용자는 이 옵션을 사용하여 오래된 파일을 찾아 삭제합니다. 실제로 rm 명령을 실행하여 파일을 삭제하기 전에 ls 명령을 사용하여 삭제할 파일인지 확인하고 살펴보는 것이 가장 좋습니다.
exec 옵션 뒤에는 실행할 명령이나 스크립트, { } 쌍, 공백 및 /, 마지막으로 세미콜론이 옵니다. exec 옵션을 사용하려면 print 옵션도 함께 사용해야 합니다. find 명령을 확인하면 명령이 현재 경로의 상대 경로와 파일 이름만 출력한다는 것을 알 수 있습니다.
예: ls -l 명령을 사용하여 일치하는 파일을 나열하려면 find 명령의 -exec 옵션에 ls -l 명령을 넣으면 됩니다.
# find -type f -exec ls. -l { } /;
-rw-r--r-- 1 루트 루트 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 루트 루트 12959 2003-02- 25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
위의 예에서 find 명령은 다음과 일치합니다. 현재 디렉토리의 파일 모든 일반 파일을 나열하고 -exec 옵션과 함께 ls -l 명령을 사용하여 나열합니다.
/logs 디렉토리에서 5일 이상 전에 변경된 파일을 찾아서 삭제하세요.
$ find log -type f -mtime +5 -exec rm { } /;
기억하세요: 셸에서 어떤 방식으로든 파일을 삭제하기 전에 먼저 해당 파일을 확인해야 하므로 주의하세요! -exec 옵션이 포함된 안전 모드는 mv 또는 rm과 같은 명령을 사용할 때 사용할 수 있습니다. 일치하는 각 파일을 작업하기 전에 메시지가 표시됩니다.
다음 예에서 find 명령은 현재 디렉터리에서 파일 이름이 .LOG로 끝나고 수정 시간이 5일 이상 지난 모든 파일을 찾아서 삭제하지만 삭제하기 전에 프롬프트만 표시합니다.
$ find . -name "*.conf" -mtime +5 -ok rm { } /;
< rm ... ./conf/httpd.conf > y 키를 누르세요. 파일을 삭제하려면 n을 눌러 삭제하지 마세요.
-exec 옵션과 함께 모든 형태의 명령을 사용할 수 있습니다.
다음 예에서는 grep 명령을 사용합니다. find 명령은 먼저 passwd, passwd.old, passwd.bak와 같은 "passwd*"라는 이름의 모든 파일을 일치시킨 다음 grep 명령을 실행하여 이러한 파일에 sam 사용자가 있는지 확인합니다.
# find /etc -name "passwd*" -exec grep "sam" { } /;
sam:x:501:501::/usr/sam:/bin/bash