Я хочу посмотреть, какие файлы будут удалены при выполнении rm
в Linux. Большинство команд, кажется, имеют опцию пробного запуска, чтобы показать именно такую информацию, но я не могу найти такую опцию для rm
. Это вообще возможно?
file-management
rm
Кори Кляйн
источник
источник
Ответы:
Скажем, вы хотите запустить:
Вы можете просто запустить:
или даже просто:
чтобы увидеть, какие файлы
rm
будут удалены, потому что это расширение оболочки*.txt
, а неrm
.Единственный раз, когда это не поможет вам, для
rm -r
.Если вы хотите рекурсивно удалять файлы и каталоги, вы можете использовать
find
вместоrm -r
, например,затем , если он делает то , что вы хотите, изменить
-print
на-delete
:источник
tree
.find . -name "*.txt" -delete
не кажется рекурсивным, хотя Удалил все файлы, но не удалил каталоги, которые были перечислены в-print
find . -type d -empty -delete
find
не удаляет каталоги, которые все еще содержат файлы (эквивалентноrm dir/
без-r
). Сначала вам придется очистить каталог - или использоватьfind
для-exec rm
этого соответствующие параметры. напр.find . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
метода, кажется, имеет недостаток. Он представляет результаты в объединенном списке (длинная строка с одним файлом после предыдущего), в отличие от вертикального списка. Есть ли способ получить вывод для отображения в вертикальном списке (один файл в строке)? (ОБНОВЛЕНИЕ: я вижу, чтоfind
метод делает то, что я просил. Поэтому я буду работать с этим.)Ты можешь сказать:
чтобы запустить его в интерактивном режиме, поэтому
rm
предложит вам подтвердить, следует ли удалять каждый файл. Вы можете просто ответить нет на каждый файл, чтобы увидеть, какие из них будут затронуты.источник
Вы можете использовать
ls
для просмотра всех файлов, которые будут удаленыrm
:Если вам нужно просмотреть список для просмотра файлов, которые будут удалены рекурсивно
rm
, то используйте-R
флаг сls
:источник
ls */*/*.txt
-R
возможностью.