특정 크기 및 유형보다 큰 파일 찾기 및 삭제

특정 크기 및 유형보다 큰 파일 찾기 및 삭제

내 서버의 대용량 로그 파일과 백업을 정리하고 싶습니다.

나는 이것을 생각해 냈습니다 :

find ./ -size +1M | xargs rm

하지만 mp3와 mp4는 포함하고 싶지 않습니다. 로그 및 아카이브 파일(zip, tar 등)에 대해서만 이 작업을 수행하고 싶습니다.

그 명령은 어떤 모습일까요?

답변1

find -type f \( -name "*zip" -o -name "*tar" -o -name "*gz" \) -size +1M -delete
  • \( \)구조를 사용하면 다양한 파일 이름 패턴을 그룹화할 수 있습니다.
  • 옵션을 사용하면 -delete파이프와 문제를 피할 수 있습니다 xargs.이것,이것그리고이것
  • ./또는 현재 디렉터리에 대해 .명령을 사용할 때 선택 사항입니다.find


편집하다:Eric Renouf가 말했듯 이 귀하의 버전이 이 옵션 find을 지원하지 않으면 -delete-exec옵션을 사용하십시오.

find -type f \( -name "*zip" -o -name "*tar" -o -name "*gz" \) -size +1M -exec rm {} +

여기서 명령으로 필터링된 모든 파일은 명령 find으로 전달됩니다.rm

답변2

이름별로 파일을 제외하려면 다음 구문을 사용할 수 있습니다.

find . -type f ! -name '*.mp3' ! -name '*.mp4' -size +1M -delete

또는 find지원하지 않는 경우 delete:

find . -type f ! -name '*.mp3' ! -name '*.mp4' -size +1M -exec rm {} \;

답변3

위의 답변을 바탕으로 다음 명령을 사용하여 큰 로그 파일에서 서버를 지웠습니다(/var/lib/jenkins로 cd'ing한 후).

find -type f -name *log -size +500M -delete

관련 정보