Рекурсивно удалите пустые папки с подробным выводом

Я предполагаю, что Вы говорите о Linux. Если это так, проверьте Wiki Dell OpenManage в: http://linux.dell.com/wiki/index.php/Repository/hardware

0
задан 14 April 2013 в 16:10
2 ответа

Вам не нужен цикл while, и вы должны использовать rmdir -p для удаления пустых родителей

find . -depth -type d -empty -exec rmdir -v -p {} + 
rmdir: removing directory, `./1/3'
rmdir: removing directory, `./1'
rmdir: removing directory, `.'
rmdir: failed to remove directory `.': Invalid argument
rmdir: removing directory, `./2/3'
rmdir: removing directory, `./2'
rmdir: failed to remove directory `./2': Directory not empty

Причина, по которой вы не видите вывода вашей команды, заключается в том, что вы выполняете это в подоболочке $ (...) , но ничего не делая с возвращаемым выводом, вы можете поместить эхо перед подселом, чтобы распечатать то, что он возвращает

echo $(find . -depth -type d -empty -exec rmdir -v -p {} +)
rmdir: removing directory, `./1/3' rmdir: removing directory, `./1' rmdir: removing directory, `.' rmdir: removing directory, `./2/3' rmdir: removing directory, `./2'
6
ответ дан 4 December 2019 в 11:17

С помощью find как в Linux, так и в MacOS у вас есть опция -delete. Это уже подразумевает -глубину. А для подробного вывода можно добавить -print. Так что просто :

find . -type d -empty -delete -print
0
ответ дан 23 October 2020 в 09:32

Теги

Похожие вопросы