Я хочу посмотреть, какие файлы будут удалены при выполнении rm
в Linux. Большинство команд, кажется, имеют опцию пробного запуска, чтобы показать именно такую информацию, но я не могу найти такую опцию для rm
. Это вообще возможно?
Я хочу посмотреть, какие файлы будут удалены при выполнении rm
в Linux. Большинство команд, кажется, имеют опцию пробного запуска, чтобы показать именно такую информацию, но я не могу найти такую опцию для rm
. Это вообще возможно?
Ответы:
Скажем, вы хотите запустить:
rm *.txt
Вы можете просто запустить:
echo rm *.txt
или даже просто:
echo *.txt
чтобы увидеть, какие файлы rm
будут удалены, потому что это расширение оболочки *.txt
, а не rm
.
Единственный раз, когда это не поможет вам, для rm -r
.
Если вы хотите рекурсивно удалять файлы и каталоги, вы можете использовать find
вместо rm -r
, например,
find . -name "*.txt" -print
затем , если он делает то , что вы хотите, изменить -print
на -delete
:
find . -name "*.txt" -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 -i
чтобы запустить его в интерактивном режиме, поэтому rm
предложит вам подтвердить, следует ли удалять каждый файл. Вы можете просто ответить нет на каждый файл, чтобы увидеть, какие из них будут затронуты.
Вы можете использовать ls
для просмотра всех файлов, которые будут удалены rm
:
ls ../path/*.txt
Если вам нужно просмотреть список для просмотра файлов, которые будут удалены рекурсивно rm
, то используйте -R
флаг с ls
:
ls -R ../path/*.txt
ls */*/*.txt
-R
возможностью.