728x90
반응형
배경
- 지정한 경로에서 빈 폴더 혹은 파일을 모두 찾아 일괄 삭제하고 싶을 때...
- 예를 들면 아래와 같이 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
반응형