728x90
반응형

 

배경

  - 지정한 경로에서 빈 폴더 혹은 파일을 모두 찾아 일괄 삭제하고 싶을 때...

  - 예를 들면 아래와 같이 Empty_* 로 표시된 빈 폴더 및 빈 파일을 일괄적으로 삭제하려면?

상위 디렉토리 및 디렉토리 구조 (Empty 표시된 폴더/파일은 빈 폴더/파일)

방법 1

- find-empty 옵션을 활용해서 빈 파일/폴더를 찾은 후, -exec rm 으로 찾은 결과물을 지워줍니다.

- -empty : 빈 파일 및 빈 폴더를 찾아줍니다.

- -exec : 찾은 결과를 다음에 오는 명령어의 argment로 입력하여 실행합니다.

            argment 위치에 {}를 위치시키고, 끝은 \; 로 끝나야 합니다.

- rm -r : 파일 및 폴더를 삭제해 줍니다.

- rm -i : -i 옵션은 파일을 지울 때마다 사용자에게 지울지 여부를 확인합니다. (y/yes - 삭제, n/no - 삭제하지 않음)

 

 * 명령어

  >> find [경로] -empty -exec rm -ri {} \;

 

 * 결과

 

방법 2

- find| xargs 를 조합해서도 구현할 수 있습니다.

- | : 앞의 출력 결과를 뒤 명령어와 연결

- xargs : 앞의 출력 결과를 다음 명령어의 argment로 입력

- 단, 이 방법은 파일/폴더를 지울 때마다 확인해 주지는 못합니다.

 

 * 명령어

  >> find [경로] -empty | xargs rm -r

 

More Tip

- 아래와 같이 find 명령어의 -size 옵션을 적용하여 파일 사이즈가 0인 파일을 찾을 수도 있습니다.

- 단, 이 명령어는 빈 폴더는 찾아지지 않습니다.

 

 * 명령어

  >> find [경로] -size 0 -exec rm -ri {} \;
  >> find [경로] -size 0 | xargs rm -r

 

 * 결과

 

728x90
반응형

+ Recent posts