find
find 명령만 입력하면 현재 디렉토리(.)에 있는 파일을 찾는다. (하위 디렉토리, 숨겨진 파일도 표시)
find /etc
특정 디렉토리(여기서는 /etc)에 있는 파일을 검색한다.
find /etc -name "ssh*"
찾을 파일이름을 지정할 수 있다.
리눅스 find 명령어 옵션 정리 및 활용법
find . -name "test*"
-name 옵션으로 찾을 파일 이름을 지정한다.
find . -name "test*" -type d
디렉토리만 찾을려면 -type d 옵션을 사용한다.
sudo find / -size +10M -exec ls -lh {} \;
-size 옵션으로 파일 사이즈를 지정할 수 있다.
(디렉토리 권한 때문에 앞에 sudo를 사용했다.)
(-exec에 대한 내용은 아래를 참조)
find . -empty
빈 파일을 찾기위해 -empty 옵션을 사용한다.
find /etc -maxdepth 2 -name 'x*'
-maxdepth 옵션으로 서브 디렉토리 검색 깊이를 지정한다.
find . -newer game.py
-newer 옵션 뒤에 적힌 파일보다 최근에 변경된 파일을 검색한다.
find . -empty -exec ls -l {} \;
find . -empty -exec rm {} \;
-exec 옵션 뒤에 명령어를 입력하여 검색한 파일로 부가적인 작업을 수행할 수 있다.
(검색된 파일이 {} 위치에 입력되어 처리된다.)
find / -name "test*" 2>/dev/null
'Permission denied'와 같은 오류를 무시하기 위해 리다이렉션을 사용할 수 있다.
(sudo 명령을 사용할 수 없는 경우에 효과적이다.)
#################################################################
파일 찾기 (파일명 검색)
현재 디렉토리에서, pl 확장자를 가진 모든 파일 찾기
(현재 디렉토리 밑의 하위 디렉토리까지 다 찾습니다.)
루트에서부터, 즉 전체 하드에서, pl 확장자를 가진 모든 파일 찾기
전체 하드 디스크에서, 파일명이 ab 로 시작하는 모든 파일 찾기
전체 하드 디스크에서, 파일명이 .bash 로 시작하는 모든 파일 찾기
전체 하드 디스크에서, 파일명이 .bash 로 시작하는 모든 파일 찾기
+ ls 명령 형식으로 출력
뒤에 -ls 라는 옵션을 붙이면 됩니다.
디렉토리명 찾기
전체 하드 디스크에서, 디렉토리 이름이 et 로 시작하는 모든 디렉토리 찾기
주의! 옵션 순서를 바꾸면 에러가 납니다.