답변:
찾기 명령을 사용하여 크기별로 파일을 찾고 파일 이름을 표준 출력으로 인쇄하십시오.
find . -type f -size 0b -print
대체 -print
와 -delete
파일을 삭제하는 대신 화면에 인쇄 할 수 있습니다.
find . -type f -size 0b -delete
-empty
대신 사용할 수 있습니다 -size 0b
.
쉘에서 직접 할 수도 있습니다. 이것은 비어있는 숨겨진 파일 (이름이로 시작하는 파일)을 삭제하지 않으려는 경우에 유용 할 수 있습니다 .
. 당신도 그것을 할 수 있지만 find
대안은 쉘 자체를 사용하는 것입니다.
shopt -s globstar
for file in **/*; do [ ! -s "$file" ] && [ -f "$file" ] && rm "$file"; done
shopt -s globstar
: bash에 대해 globstar 옵션을 켜서 **
하나 이상의 하위 디렉토리와 일치시킵니다. **/*
현재 디렉토리와 모든 하위 디렉토리의 모든 파일 및 디렉토리와 일치합니다.for file in **/*; do ...; done
: 발견 된 모든 파일 및 디렉토리를 반복합니다.[ ! -s "$file" ]
: [ -s "$file" ]
파일이 존재하고 비어 있지 않으면 true입니다. 따라서 파일이 존재하지 않거나 비어 있으면 (테스트 [ ! -s "$file" ]
의 !
반대) 참입니다.[ -f "$file" ]
: 파일이 일반 파일 인 경우 true입니다. 디렉토리 나 장치 파일 또는 심볼릭 링크 등이 아닙니다.rm "$file"
: 파일을 삭제합니다.는 &&
이것은 단지 빈, 일반 파일을 삭제 있도록 이전이 성공하면 다음 명령은 실행되어 있는지 확인합니다.