[linux] find 사용법
파일 및 디렉터리
ㅇ 디렉터리만
ㅇ 파일만
ㅇ 파일 사이즈 5MB 이상
ㅇ 파일사이즈 50KB미만
find . -type f -size -50k
ㅇ 파일사이즈 10KB이상 50KB미만
find . -type f -size +10k -size -50k
ㅇ 권한이 644만
ㅇ 5일 전~3일 전 변경된 파일 구하기
> find /home/tomcat/logs -type f -mtime -5 -mtime +3
ㅇ 5일 전인 경우 24*5 시간 전 ~24*4전 사이를 말한다.
> find /home/tomcat/logs -type f -mtime 5
ㅇ 60일 지난 파일은 삭제
> find /home/tomcat/logs -type f -mtime +60 -delete
- exec
find의 결과 값을 {}에 대입하여 -exec와 \; 사이의 shell을 실행한다.
-exec는 ls -lh {}를 ls -lh ./auth.log로 실행하도록 한다.
find 실행 결과만 echo로 출력
ㅇ 불필요한 파일 삭제
ㄴ 2024.4.13 update
ㄴ 집에서 아이들 영화폴더를 관리하는데 불필요한 파일들이 '._*' 형태로 발생하여 일괄 삭제하였다.
$ find . -type f -name "._*" -exec rm {} \;
일괄 작업도 가능하다.
1) /home/peter/test 파일크기 5MB가 넘으면 chmod 명령어를 실행하여 권한 수정
> find /home/peter/test -type f -size +5M -exec chmod 755 {} \;
- xargs
exec 커맨드와 유사하다. 인자를 연속으로 나열하여 커맨드를 실행할 수 있다.
>find ./ -name *.log -type f | xargs -I{} cp {} /home/peter/test2/
추가로 필요한 기능이나 정리된 점이 있으면 여기에 정리해 나가야겠다.