Удалить все папки, кроме тех, которые отображаются в символических ссылках.

Использованиеgrep:

grep -E ':.{4,}$' file

Использование grep+sponge(из moreutils ), чтобы «редактировать» файл «на месте»:

grep -E ':.{4,}$' file|sponge file
2
02.12.2019, 12:25
1 ответ

Вы можете использовать тот факт, что команда rmdirудалит только пустой каталог.

Сначала используйте find <folder structure root> -type d, чтобы собрать список всех папок, (пустых или нет ). Сохраните его во временный файл.

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

Затем запустите rmdirдля каждой папки в третьем списке, намеренно игнорируя любые ошибки «каталог не пуст». На самом деле будут удалены только пустые папки.

0
24.12.2020, 23:59

Теги

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