[Linux/Shell] find / find command / man find / find 명령어 / find 옵션

2022. 5. 12. 17:07🧑🏻‍💻/Unix

man find

find의 설명은 Walk a file hierarchy. 


Synopsis

find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]	# 대괄호는 생략 가능을 나타냄.
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]

기본 사용

find .		# 현재 디렉토리부터 하위 디렉토리들의 모든 뎁스까지 모든 디렉토리 및 파일을 출력.
find ..		# 상위 디렉토리들로 부터 하위 디렉토리의 모든 뎁스까지 모든 디렉토리 및 파일을 출력.
find /		# 루트 디렉토리 부터 모두 출력.
find [PATH]	# 해당 디렉토리에 있는 모든 파일 및 디렉토리 출력.

* 루트 디렉토리부터 찾기 시 모든 파일과 디렉토리가 출력 될 때 당황하지말고 [ ^c ] < control + c > 키를 눌러 정지 가능.

-type t[bcdflps]		# 지정한 파일 타입에 해당하는 파일 검색
				# b - block special
                	        # c - character special
                    	    	# d - directory
                        	# f - regular file
	                        # l - symbolic link
	    	                # p - FIFO
        	                # s - socket

-name "~"			# 와일드 카드 사용하여 검색
find . -type f -name "2*3"	# 하나만 찾을때 사용 (2로 시작해서 3으로 끝나는 파일 및 디렉토리 찾기)
find . -type f -name "*55*"	# 하나만 찾을때 사용 ('55' 포함된 파일 및 디렉토리 찾기)

\( -name "*~" -or -name "#*#" \) 			# 복수의 이름 찾기
find . -type f \( -name "2*" -or -name "*3" \)		# 2로 시작하거나 3으로 끝나는 파일 및 디렉토리 찾기
-size n[ckMGTP]			# 파일의 크기로 검색
-ctime n[smhdw] (change time) 	# 파일의 내용 및 속성이 변경된 시간을 기준으로 파일 검색
-exec utility [argument ...] ; 	# 검색된 파일들에 대해서 명령(utility) 실행

사용 예시

find . -empty 
# 빈 디렉토리 및 크기가 0인 파일 검색

find . -name [FILE] -print0
# 검색된 파일 리스트를 줄 바꿈 없이 이어서 출력

find . \! -name "1*" -print			
# 파일명이 '1'로 시작하는 파일을 제외한(\!) 모든 파일들의 목록 출력

find . -newer test -user chanhihi -print	
# test파일보다 더 최근 생성된 파일들 중 chanhihi가 소유자인 파일 목록 출력

find . \! \(-newer test -or -user chanhihi\) -print	-delete
# test파일보다 더 오래된 파일들 또는(-or) chanhihi가 소유자가 아닌 파일 목록 출력 후 해당 파일 삭제

find . -maxdepth 1 -name [FILE]
# 검색시 하위 디렉토리 검색하지 않음.

find . -type f -exec echo {} \;
# general type의 모든 파일의 목록을 echo 명령어의 입력값으로 사용

find . -type f -name[FILE] -exec wc-l {} \;
# 검색된 파일의 라인 수 출력.

find . -type f -name[FILE] -exec ls -l {} \;
# 검색된 파일에 대한 상세 정보 출력

find . -type f -name[FILE] -exec grep "CHAN" {} \;
# 검색된 파일에서 문자열 찾기.

find . -name [FILE] -exec cp {} [PATH] \;
# 검색된 파일 복사.

find . -name [FILE] > file_list.txt
# 파일 검색 결과를 file_list.txt에 저장.

find . -size +[N]c -and size -[M]c
# N보다 크고 M보다 작은 사이즈 검색