どのファイルが削除されるかを確認するために、rmのドライランをどのように実行しますか?


87

rmLinuxでを実行するときに削除されるファイルを確認したいのですが。ほとんどのコマンドには、そのような情報だけを表示するための予行演習オプションがあるように見えますが、私はそのようなオプションを見つけることができないようですrm。これも可能ですか?


また、アクセス権がないためにどのファイルがエラーを生成するかを確認したいと思います。
サイモンウッドサイド

回答:


121

実行したいとしましょう:

rm *.txt

あなただけを実行することができます:

echo rm *.txt

または単に:

echo *.txt

rmシェルがを展開するため*.txt、ではなく、どのファイルが削除されるかを確認しますrm

これがあなたを助けない唯一の時はのためrm -rです。

ファイルとディレクトリを再帰的に削除する場合findrm -r、代わりにを使用できます。たとえば、

find . -name "*.txt" -print

それがあなたが望むことをするなら、に変更-print-deleteます:

find . -name "*.txt" -delete

findは良い選択ですIMO。そして、あなたがグラフィカルなプレゼンテーションを使用したい場合tree
ノイズブリード

2
ほぼ完璧。find . -name "*.txt" -delete再帰的カントーではないようです。すべてのファイルを削除しましたが、リストされているディレクトリを削除しませんでした-print
オスカーゴッドソン

1
@OscarGodsonファイルを削除した後にディレクトリが空のままになっていると仮定すると、それらを削除することができますfind . -type d -empty -delete
-datguy

1
@OscarGodson- findまだファイルを含むディレクトリを削除しません(rm dir/withoutに相当-r)。あなたは最初のディレクトリを空にしなければなりません-または使用find-exec rmこれを行うために適切なオプションを。例find . -depth -name "*.txt" -exec rm -r {} +
shalomb

このecho rm *.txt方法の使用には欠点があるようです。垂直リストとは対照的に、結果を連結リスト(前のファイルの後に1つのファイルがある長い文字列)で表示します。出力を垂直リスト(1行に1ファイル)で表示する方法はありますか?(UPDATE:私はことを確認findする方法は、私が要求したものを行いますので、私はそれで実行されます。)
inspirednz

16

あなたは言うことができます:

rm -i

対話モードで実行するには、rm各ファイルを削除するかどうかを確認するプロンプトが表示されます。各ファイルにnoと答えると、どのファイルが影響を受けるかを確認できます。


8
多数のファイルがある場合、これはかなり困難です。
コリークライン

9
はいn | rm -i#コメントの最小長を満たすためのコメント
ジョシュア

4

を使用lsして、削除されるすべてのファイルを一覧表示できますrm

ls ../path/*.txt

recursive rmで削除されるファイルを表示するためにリストする必要がある場合は、次の-Rフラグを使用しlsます。

ls -R ../path/*.txt

いい視点ね。あなたはその後、ネストのレベルを知っていれば、あなたがすることによってこれを達成することができますがls */*/*.txt
Veneetレディ

1
あなたが正しい。-Rオプション。
ベネエットレディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.