크기가 0 인 Linux 삭제 파일
이 질문에는 이미 답변이 있습니다.
- 리눅스에서 많은 0 바이트 파일을 삭제하는 방법? 답변 10 개
크기가 0 인 경우 리눅스에서 특정 파일을 어떻게 삭제합니까? 추가 스크립트없이 crontab에서이 파일을 실행하고 싶습니다.
l filename.file | grep 5th-tab | not eq 0 | rm
이 같은?
그러면 크기가 0 인 디렉토리 (및 아래)의 모든 파일이 삭제됩니다.
find /tmp -size 0 -print0 |xargs -0 rm --
당신이 특정 파일을 원한다면;
if [ ! -s /tmp/foo ] ; then
rm /tmp/foo
fi
find 를 사용하고 싶습니다 :
find . -size 0 -delete
현재 디렉토리 및 서브 디렉토리에서 빈 파일을 검색하고 삭제하려면 다음을 수행하십시오.
find . -type f -empty -delete
-type f
디렉토리도 크기가 0으로 표시되므로 필요합니다.
점 .
(현재 디렉토리)은 시작 검색 디렉토리입니다. GNU find (예 : Mac OS가 아님)가있는 경우이 경우 생략 할 수 있습니다.
find -type f -empty -delete
에서 GNU의 find
문서 :
검색 할 파일이 지정되지 않으면 현재 디렉토리 (.)가 사용됩니다.
명령 find
을 사용하여 이를 수행 할 수 있습니다 . 를 -type f
사용하여 파일을 일치시키고을 사용하여 빈 파일을 일치 시킬 수 있습니다 -size 0
. 그런 다음로 일치하는 항목을 삭제할 수 있습니다 -delete
.
find . -type f -size 0 -delete
이것은 일반 BSD에서 작동하므로 모든 맛과 보편적으로 호환되어야합니다. below.eg에서 pwd
( .
)
find . -size 0 | xargs rm
Linux에서 stat (1) 명령은 find (1)이 필요하지 않은 경우에 유용합니다.
(( $(stat -c %s "$filename") )) || rm "$filename"
여기서 stat 명령을 사용하면 파일 크기 만 얻을 수 있습니다 -c %s
(다른 형식의 매뉴얼 페이지 참조). stat 프로그램을 실행하고 출력을 캡처하고 $( )
있습니다. 이 출력은 숫자로 표시되며 외부 (( ))
입니다. 크기가 0이면 FALSE이므로 OR의 두 번째 부분이 실행됩니다. 0이 아닌 (빈 파일이 아닌) 파일은 TRUE이므로 rm이 실행되지 않습니다.
비 재귀 삭제의 경우 (du 및 awk 사용) :
rm `du * | awk '$1 == "0" {print $2}'`
find . -type f -empty -exec rm -f {} \;
참고 URL : https://stackoverflow.com/questions/5475905/linux-delete-file-with-size-0
'programing tip' 카테고리의 다른 글
루비가 잘린 것이 아니라 전체 역 추적을 인쇄하도록하려면 어떻게해야합니까? (0) | 2020.06.12 |
---|---|
CSS로 사각형 이미지를 사각형으로“자르는”방법은 무엇입니까? (0) | 2020.06.12 |
좋아하는 (영리한) 방어 프로그래밍 모범 사례 (0) | 2020.06.12 |
배열에서 요소의 합과 평균을 계산하는 방법은 무엇입니까? (0) | 2020.06.12 |
“while (1);”최적화 (0) | 2020.06.12 |