GNU/Linux >> Linux の 問題 >  >> Linux

パターンに一致するファイルを削除するために find コマンドを使用する方法は?

解決策 1:

私は通常、 -exec を使用してそれを見つけます find のオプション より簡単で混乱を避けるために。これを試してください:

find . -name vmware-*.log -exec rm -i {} \;

-exec 以降のすべて ;まで、各結果に対して実行するコマンドと見なされます find に渡されるように、ここでエスケープされます . {} find というファイル名に置き換えられます 通常は印刷されます。

目的の動作を確認したら、 -i を削除できます .

解決策 2:

GNU find がある場合 -delete を使用できます オプション:

find . -name "vmware-*.log" -delete

xargs を使用するには ファイル名のスペースの問題を回避します:

find . -name vmware-*.log -print0 | xargs -0 rm

ただし、ログ ファイルの名前にスペースを含めないでください。ワード プロセッシング ドキュメントと MP3 ファイルにはそれらが含まれている可能性がありますが、ログ ファイルの名前を制御できるはずです。

解決策 3:

find がわかります 出力リストを NULL と xargs で区切る 入力リストを同じように受け取るには:

$ ls -l "file 1" "file 2"
-rw-r--r-- 1 james james 0 Oct 19 13:28 file 1
-rw-r--r-- 1 james james 0 Oct 19 13:28 file 2

$ find . -name 'file *' -print0 | xargs -0 ls -l
-rw-r--r-- 1 james james 0 Oct 19 13:28 ./file 1
-rw-r--r-- 1 james james 0 Oct 19 13:28 ./file 2

$ find . -name 'file *' -print0 | xargs -0 rm -v
removed `./file 2'
removed `./file 1'

また、必ず * をエスケープしてください。 、バックスラッシュを使用するか、 vmware-*.log を含めることにより そうしないと、シェルが find に渡す前に展開しようとする可能性があります .

解決策 4:

find の -delete を忘れないでください オプション。特殊文字でエラーなしでファイルを削除します...


Linux
  1. パターンに一致する特定のファイルを検索する方法は?

  2. Linuxでfdコマンドを使用してファイルを検索する方法

  3. Linux の find コマンドを使用してファイルを検索する方法

  1. Grepコマンドを使用してファイル内のテキストを検索する方法

  2. Linux で rpm2cpio コマンドを使用する方法

  3. すべてのサブディレクトリで一致するファイルを削除します

  1. ディレクトリとサブディレクトリ内のファイル数を見つける方法

  2. Linuxで巨大な(100-200GB)ファイルを削除する方法

  3. findコマンドで正規表現を使用するには?