Я хочу посмотреть, какие файлы будут удалены при выполнении 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возможностью.