現在のディレクトリの下にあるすべての *.swp ファイルを削除し、find
を使用します 次のいずれかの形式のコマンド:
-
find . -name \*.swp -type f -delete
-delete
オプションは、find が一致するファイルを直接削除することを意味します。これは、OPの実際の質問に最適です。
-type f
の使用 find はファイルのみを処理することを意味します。
-
find . -name \*.swp -type f -exec rm -f {} \;
find . -name \*.swp -type f -exec rm -f {} +
オプション-exec
find がファイルごとに任意のコマンドを実行できるようにします。最初のバリアントはファイルごとに 1 回コマンドを実行し、2 番目のバリアントは{}
を置き換えることで可能な限り少ないコマンドを実行します。 できるだけ多くのパラメーターを使用します。
-
find . -name \*.swp -type f -print0 | xargs -0 rm -f
出力をxargs
にパイプする-exec
よりも複雑なファイルごとのコマンドから使用されます .オプション-print0
find
を伝える 改行の代わりに ASCII NULL でマッチを区切り、-0
xargs
に伝えます NULL で区切られた入力を期待します。これにより、空白を含むファイル名に対してパイプ構造が安全になります。
man find
を参照 詳細と例については、
find . -name '*.swp' -delete
ファイル名に埋め込まれたスペースのリスクを削除自体を見つけることで、...セキュリティを強化するために -type f
を追加することも検討してください ファイルのみ。
find /path -type f -name "*.swp" -delete
find /path -type f -name "*.swp" -exec rm -f "{}" +;
バッシュ 4.0
shopt -s globstar
rm -f /path/**/*.swp