Я знаю, как рекурсивно удалить все подпапки и все файлы. Но в этом случае, я должен сохранить подпапки. В основном я должен освободить их всех.
Так, я имею
rootdir/
subA/
subB/
subC/
subN/
И я хочу удалить все файлы внутри subA
кому: subN
, но без удаления subA
...subN
Что такое консольная команда для этого? Я предполагаю, что это - переключатель к rm
Можно использовать эти find
команда для идентификации только регулярных файлов (тип f
) рекурсивно
find rootdir -type f
, Если это покажет результаты, то Вы ожидаете, затем для фактического удаления их
find rootdir -type f -delete
нбар это - реальное, удаляют не "перемещение к мусору" также - быть на 100% уверенным, что это - то, что Вы действительно хотите сделать прежде, чем выполнить команду.
Основываясь на ответе steeldriver, можно добавить xargs так, чтобы был только один вызов к gvfs-мусору. в его примере, find
призовет gvfs-trash
однажды к каждому файлу найденный find
. Это могло бы быть медленно, если существует много файлов:
find . -type f -print0 | xargs -0 gvfs-trash
Можно также сделать это с эти rm
команда, но необходимо было бы неоднократно делать это.
Вы можете сначала cd
к родительскому каталогу с этим
cd /rootdir
после этого, необходимо будет работать
rm -rf ./folder/*
папка Replace с названием папки, которую Вы хотите освободить (например, subA).
Повторение это, пока все папки не пусты.
Примечание, которое -rf
удалит также, удаляет все папки в папке, которую Вы хотите к пустому
Можно сделать это с -exec
как это: find rootdir -type f -exec rm {} \;
(отмечают, что обратная косая черта важна)