Linux,Unix,BSD

[shell] 파일의 크기가 0인 것만 삭제하기

채윤아빠 2024. 5. 16. 10:25
728x90
반응형

개요

불필요한 파일을 정리하다가 파일의 크기가 0인 임시 파일들이 여기 저기 흩어져 있는 것을 알게 되었습니다.

일일이 확인하여 지우려니 짜증이 났는데, "find" 명령을 이용한 간한한 해결책이 있어 관련 내용을 공유합니다.


find - 파일 크기가 0인 것만 검색하기

find 명령으로 특정 폴더 아래에서 파일 크기가 0인 것만 확인하는 방법은 다음과 같습니다.

$ find /path/to/parent/dir -type f -size 0 -print
  • "-type f" 파일만 검색
  • "-size 0" 파일 크기가 0인 것만 검색
  • "-print" 검색 결과를 출력

find 명령에서 검색한 파일을 삭제 처리하는 옵션으로 "-delete"를 이용할 수 있습니다.

다음과 같이 실행하면 지정된 폴더 하위에서 크기가 0인 모든 파일이 삭제됩니다.

$ find /path/to/parent/dir -type f -size 0 -delete

find - size 옵션 세부 설명

find 명령의 "-size" 옵션에서 사용할 수 있는 단위는 다음과 같습니다.

  • b: 512바이트 블록 단위
  • c: 바이트 단위
  • w: 2바이트 워드 단위
  • k: 킬로바이트 단위
  • M: 메가바이트 단위
  • G: 기가바이트 단위

예를 들어, 1MB보다 큰 파일을 검색하려면 -size +1M을 사용하면 됩니다.

 

"-size" 옵션을 두번 적용하여 특정 크기 범위를 지정할 수도 있습니다. 다음은 1KB ~ 10KB 사이의 파일을 검색합니다.

$ find /path/to/parent/dir -type f -size +1k -size -10k