Linux #2 - find

find

main

1. find 란?

리눅스에서 지원하는 기본명령어로 파일, 디렉토리 검색 을 할 수 있습니다. 굉장히 많고 다양한 표현을 사용하여 응용 범위가 넓은 명령어로 보면 될 것 같네요. 유용하게 사용하는데 가끔씩 표현이 기억안날때가 있어 정리해 봅니다.

2. find 옵션

find는 아래와 같은 기본 표현이 있습니다.

find [OPTION...] [PATH] [EXPRESSION...]
	EXPRESSION
		-name     : 지정된 문자열 패턴에 해당하는 파일 검색
		-empty    : 빈 디렉토리 또는 크기가 0인 파일 검색
		-delete   : 검색된 파일 또는 디렉토리 삭제
        -size     : 파일 크기를 사용하여 파일 검색
        -type     : 지정된 파일 타입에 해당하는 파일 검색
        -atime    : 파일 접근(access) 시각으로 파일 검색
        -ctime    : 파일 내용, 속성 변경(change) 시각으로 파일 검색
        -mtime    : 파일의 데이터 수정(modify) 시각으로 파일 검색

지원하는 표현들만 잘 사용해도 정말 다양하게 응용할 수 있다는 것을 알 수 있죠. 그 중에서도 많이 사용하는 표현들을 표로 정리해볼께요.

명령어 설명
find 현재 디렉토리에 있는 파일 및 디렉토리 리스트 표시
find [PATH] 대상 디렉토리에 있는 파일 및 디렉토리 리스트 표시
find . -name “NAME” 현재 디렉토리 아래 모든 파일 및 하위 디렉토리에서 파일 검색
find / -name “NAME” 전체 시스템에서 파일 검색
find . -name “NAME” 특정 파일 이름 검색
find . -empty 빈 디렉토리 또는 크기가 0인 파일 검색
find . -name “NAME” -delete 특정 파일 이름 검색 후 삭제
find . -name “NAME” -type f 파일 검색하기, d(디렉토리), l(심볼링크)
find . -size +1024c -and -size -2048c 파일크기 1024바이트 초과 2048 미만 검색
find . -name “NAME” > name.txt 검색결과를 name.txt에 저장

find 명령어 만으로도 위와 같이 다양한 방식으로 사용할 수 있습니다. 여기에 리눅스 Shell Command를 활용하여 응용도 할 수 있죠. 대표적으로 >>> command가 있습니다.

>는 명령어 뒤에 나오는 출력을 파일에 쓸 때 사용하구요
>>는 명령어 뒤에 나오는 파일에 추가 할 때 사용 합니다.

예를들면 이런거죠. 현재 경로에서 하위 경로 중 확장자가 C언어인 리스트를 저장하고 싶다면 아래와 같이 적으면 됩니다.

find ./ -name "*.c" > list.txt

또는 현재 경로에서 하위 모든 폴더 리스트를 만들고 싶다면 아래와 같이 쓰면 됩니다.

find ./ -type d > directory_list.txt 

3. 마무리

지금까지 리눅스 기본 명령어인 find에 대해서 알아봤는데요. find 만큼 다양한 표현을 가지고 있는 것이 grep 이라는 명령어가 있습니다. find와 함께 자주 사용되기도 하는데요. 다음에는 grep에 대해서 설명해 보도록 할께요.

도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)

댓글 쓰기

0 댓글