find 명령은 Linux에서 가장 일반적으로 사용되는 명령 중 하나입니다. 다음은 몇 가지 일반적인 용도를 요약한 것입니다.
1. 파일명으로 검색하세요.
현재 디렉토리에서 txt로 끝나는 모든 파일을 검색합니다. 두 번째 명령은 -exec 매개변수를 사용하여 발견된 모든 파일에 대해 작업을 수행합니다. 형식에 주의하고 공백이나 ;가 누락되어서는 안 됩니다. -name 매개변수는 두 번째 예
find ./* -name "*.txt"
find ./* -name "[ab]*.py"find ./* -name "*.pyc" -exec rm {} ;
현재 디렉터리에서 해당 날짜에 수정된 파일을 찾습니다. -1은 하루 전에 수정된 파일을 나타냅니다. -2는 처음 2일을 의미합니다. find ./* -mtime n n은 파일 데이터의 마지막 수정이 n*24시간 전임을 의미합니다. +n은 n일 전, -n은 n일 이내(-mmin은 n분), n은 n일을 의미하며, 의미가 다르므로 구분에 주의하세요.
find ./* -mmin -60 -type f -print
find ./* -mmin +60 -type f -print
이전 매개변수와 기본 원리는 동일하지만, 이 매개변수의 의미는 파일의 권한이 변경된다는 것입니다. 내용을 변경하는 것과 파일의 권한을 변경하는 것은 다릅니다. 여기서 의미하는 것은 파일의 권한, 소유자 및 기타 정보와 같은 파일 inode의 데이터가 변경된다는 것입니다. cmin은 지난 60분 동안 권한이 변경되었음을 의미하고, ctime은 지난 며칠 동안 권한이 변경되었음을 의미합니다.
find ./* -ctime -60 -type f -print
그룹에 따르면 -user 및 -nouser를 찾으려면 해당 파일이 속한 사용자와 현재 삭제된 시스템 사용자의 모든 파일을 찾습니다.
find ./* -nouser
find는 특정 디렉토리와 여러 디렉토리를 피합니다. 그 중 -a는 또는를 의미하고, -o는 또는을 의미합니다.
테스트 찾기( -path test/test4 -o -path 테스트/test3 ) -prune -o -print
find . ( -path ./modules -o -path ./framework -o -path ./utils -o -path ./config ) -prune -o -name "Bigger.*" -print
-perm 옵션은 해당 파일의 접근 권한을 의미합니다.
inode를 이용하여 파일번호를 알아보세요. inode 번호는 아래와 같이 find 명령에서 지정할 수 있습니다. 여기서 find 명령은 inode 번호로 파일 이름을 바꿉니다. rm을 통해 특정 파일을 삭제할 수도 있습니다.
16187429 테스트 파일 이름
16187430 테스트 파일 이름
find -inum 16187430 -exec mv {} new-test-file-name ;
현재 디렉토리에서 가장 큰 파일 5개 찾기
9
다음 명령은 100M보다 큰 *.zip 파일을 삭제합니다.
찾기 / -type f -name *.zip -size +100M -exec rm -i {} ;