리눅스 파일 시스템에서 파일을 검색하는데 사용되는 명령어이다. 다양한 표현식을 사용하여 원하는 파일의 목록을 추출 할 수 있다.
find [옵션] [경로] [표현식]
P : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용.
L : 심볼릭 링크에 연결된 파일 정보 사용.
H : 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외.
D : 디버그 메세지 출력.
find의 인자 값으로 경로를 받는다. 상대경로, 절대경로 모두 가능하며 대부분의 리눅스의 경우 이 경로 인자 값을 생략한다면 현재 위치(.)를 입력받은 것으로 간주하지만 유닉스의 경우 이 경로를 입력받지 않으면 명령어 실행이 안되니 유의해야 한다.
name : 해당 이름의 파일을 찾음. 해당 이름에는 정규표현식을 활용할 수 있다.
type : 지정된 파일 타입에 해당하는 파일 검색
find 명령어는 옵션을 사용하는 것보다 표현식을 통해 찾는 경우가 많다. 이 표현식으로 중첩되는 대상 범위를 줄일 수 있다.
현재 디렉토리에서 temp가 포함되는 파일 찾기
find . -name "*test*"
현재 디렉토리에서 .txt 확장자 모두 찾기
find . -name "*.txt*"
현재 디렉토리에서 .txt 확장자 파일 검색 후 모두 삭제
find . -name "*.txt*" -delete
현재 디렉토리에서 temp로 시작되는 파일 찾기
find . -name "temp*"
현재 디렉토리에서 temp로 끝나는 파일 찾기
find . -name "*temp"
현재 디렉토리에서 모든 디렉토리 찾기
find . -type d
현재 디렉토리에서 temp가 들어가는 디렉토리 찾기
find . -name "*temp*" -type d
현재 디렉토리에서 모든 파일 찾기
find . -type f
현재 디렉토리에서 빈 디렉토리이거나 크기가 0인 파일 검색
find . -empty
현재 디렉토리에서 temp가 들어가는 빈 디렉토리이거나 크기가 0인 파일 검색하여 삭제
find . -name "*temp*" -empty -delete
현재 디렉토리에서 1024byte인 파일 검색
find . -size 1024c
현재 디렉토리에서 1024byte보다 큰 파일 검색
find . -size +1024c
현재 디렉토리에서 1024byte보다 작은 파일 검색
find . -size -1024c
현재 디렉토리에서 1kb보다 크고 10kb보다 작은 파일 검색
find . -size +1k -size -10k
현재 디렉토리에 "temp"가 들어가는 파일을 찾아서 상세정보 출력
find . -name "*temp*" -exec ls -l {} \;
현재 디렉토리에 있는 파일에서 "temp"가 들어가는 내용 찾기
find . -type f -exec grep "test" {} \;
현재 디렉토리에 ".txt" 확장자를 찾아서 모두 삭제
find. -name "*.txt" -exec rm {} \;