디렉터리와 모든 하위 디렉터리에서 특정 확장자를 가진 빈 파일을 모두 제거하고 싶습니다.
답변1
각 파일을 삭제한 후 확인하여 다음을 시도할 수 있습니다.
$ find /path/to/dir -type f -name "*.txt" -empty -ok rm {} \;
또는 좀 더 자신감이 생긴다면:
$ find /path/to/dir -type f -name "*.txt" -empty -exec rm {} \;
답변2
일반적으로 "디렉터리 및 해당 하위 디렉터리에서..."에 대한 대답에는 일반 파일 일치, 특정 확장자 제한 및 빈 파일 제한에 대한 find
.-type f
-name '*.ext'
-size 0
find /some/dir -name '*.ext' -type f -size 0 -exec rm {} +
버전이 find
너무 오래된 경우 ... -exec rm {} \;를 대신 사용할 수 있습니다( 한 번에 많은 파일을 호출 +
하므로 사용하는 것이 더 빠릅니다 ). rm
Linux, FreeBSD, NetBSD 및 OSX에서는 find
기본 제공 작업 -delete
및 -empty
조건자( -size 0
일반 파일과 동일)를 사용할 수 있습니다.
find /some/dir -name '*.ext' -type f -empty -delete
zsh에서는 **
glob을 사용하여 하위 디렉터리로 재귀할 수 있으며글로벌 예선.
크기가 0( )인 일반 파일( ) 로 일치를 제한합니다 L0
.
rm /some/dir/**/*.ext(.L0)