Проверьте schroot, который может chroot в папку как пользователь. Здесь страница справочника для него: http://manpages.ubuntu.com/manpages/hardy/man1/schroot.1.html
Можно попробовать следующее, для подтверждения после удаления каждого файла сначала:
$ find /path/to/dir -type f -name "*.txt" -empty -ok rm {} \;
или если Вы чувствуете себя больше уверенно:
$ find /path/to/dir -type f -name "*.txt" -empty -exec rm {} \;
Обычно, ответ на, “как делают меня … в каталоге и его подкаталогах”, включает 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)
find
-delete
опция будет более простой. – 0xC0000022L 15.02.2012, 19:34