Как удалить рекурсивно все пустые папки

find . -type d | tac | xargs rmdir 2> /dev/null


Команда «find . -type d | tac | xargs rmdir 2> /dev/null» выполняет удаление рекурсивно всех пустых папок в текущем каталоге и его подкаталогах.

Описание:
1. «find .» — ищет все файлы и папки в текущем каталоге (включая подкаталоги).
2. «-type d» — фильтрует результаты по типу, оставляя только папки.
3. «|» (вертикальная черта) — перенаправляет результаты поиска на следующую команду.
4. «tac» — изменяет порядок вывода результата на обратный, то есть последняя найденная папка будет выведена первой, а первая — последней.
5. «xargs rmdir» — для каждой строки входного потока вызывает команду «rmdir», которая удаляет пустые папки.
6. «2> /dev/null» — перенаправляет сообщения об ошибках (stderr) в «никуда», позволяя скрыть ошибки и предупреждения.

Полезность: данная команда позволяет удалить все пустые папки в иерархии файловой системы, экономя время и упрощая рутинную задачу удаления.

Альтернативы: вместо команды «rmdir» можно использовать команду «rm -r» для удаления пустых папок и всех их содержимого. Однако это может привести к удалению файлов и подпапок внутри пустых папок, если они содержатся внутри. Поэтому следует быть осторожным при использовании команды «rm -r».

Аргументы: в данном случае команда не принимает аргументов, так как она относится только к текущему каталогу и его подкаталогам.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *