Обычно, ответ на, “как делают меня … в каталоге и его подкаталогах”, включает find
. Использовать -type f
соответствовать регулярным файлам, -name '*.ext'
ограничить конкретным расширением, и -size 0
ограничить пустыми файлами.
find /some/dir -name '*.ext' -type f -size 0 -exec rm {} +
Если Ваша версия find
слишком старо, Вам, возможно, понадобится' … - исполнительная комната {} \'; вместо этого (использование +
быстрее, потому что это звонит rm
на многих файлах сразу). В соответствии с Linux, FreeBSD, NetBSD и OSX, можно использовать find
сборка - в -delete
действие и -empty
предикат (эквивалентный -size 0
на регулярных файлах):
find /some/dir -name '*.ext' -type f -empty -delete
В zsh можно использовать **
шарик для рекурсивного вызова в подкаталоги и спецификаторы шарика для ограничения соответствий регулярными файлами (.
), размера 0 (L0
).
rm /some/dir/**/*.ext(.L0)