ファイル名の末尾に~
が含まれている特定のディレクトリ(またはそのサブディレクトリ)にファイルが存在するかどうかを確認するのに、どのコマンドをLinuxで使用できますか?すべての〜ファイルを削除するLinuxコマンド
例えば、多くのサブディレクトリなどがあるt
というディレクトリにある場合、私は~
で終わるすべてのファイルを削除したいと思います。
ファイル名の末尾に~
が含まれている特定のディレクトリ(またはそのサブディレクトリ)にファイルが存在するかどうかを確認するのに、どのコマンドをLinuxで使用できますか?すべての〜ファイルを削除するLinuxコマンド
例えば、多くのサブディレクトリなどがあるt
というディレクトリにある場合、私は~
で終わるすべてのファイルを削除したいと思います。
あなたは、find、grepを、RMの組み合わせ、
のようなものを使用して見つけることができます| grep "〜" |おそらく
-f xargsのrmを他の人がより良いアイデアを持っている:)
これは〜bなども削除します – njsf
find ./ -name '*~' -print0 | xargs -0 rm -f
ここfind
は「*〜」グロブに一致するファイル名のフィルタリング、ディレクトリ./
およびすべてのサブディレクトリを検索し、(それらを印刷しますproper quoting courtesy of alberge)。結果はxargs
に渡され、rm -f
に追加され、結果の文字列はシェルで実行されます。複数のパスを使用することができ、利用可能な他の多くのフィルタがあります(ちょうどman find
を読んでください)。
名前にスペースを入れてください。 GNUと
find ./ -name "*~" -type f -print0 | xargs -0 rm
のrm -r
find /path -type f -name "*~" -exec rm {} +
または
find /path -type f -name "*~" -delete
+1、これらのソリューションはどちらも、削除される各ファイルの新しいプロセスをフォークしません。非常に多くのファイルを削除する場合、コマンドラインの長さ制限の問題に遭遇することは決してないので、2番目の方法はやや優れています。 –
を見つける*〜私の作品 –
それは* @Shadow、仕事に*見えるかもしれませんが、私はそれはあなたのためだと思いますそれは間違っています:-) x-ファイルを持つディレクトリでそのコマンドを実行すると、* shell *はxmに展開されてからrmが見えるようになります。つまり、サブディレクトリは実行されません。また、現在のディレクトリにVIMバックアップファイルがない場合、シェルは不平を言います。 – paxdiablo