Linux,Unix,BSD

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

채윤아빠 2024. 5. 16. 10:25

개요

불필요한 파일을 정리하다가 파일의 크기가 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




728x90
반응형