カレントディレクトリの下にある全ての*.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は、マッチを改行ではなくASCII NULLで区切るようにfindに指示し、-0はNULLで区切られた入力を期待するようにxargsに指示します。これにより、ホワイトスペースを含むファイル名に対してパイプ構造体が安全になります。
詳細と例については man find を参照してください。
ホームディレクトリの下を検索するには(GNUの'find'と'xargs'を使うには)、以下のようにします。
find $HOME -name '*.swp' -print0 | xargs -0 rm -f
‘-print0’ と ‘-0’ の使用は、名前が ASCII NUL ‘\0’ 文字で区切られることを意味します。もし、’.swp’ で終わるディレクトリの下にディレクトリ (またはデバイスファイル、FIFO、その他の非ファイル) があるかもしれないと思うなら、'find’ に ‘-type f’ オプションを追加することができます。ディレクトリだけがある場合は、上記のコマンドを実行してもノイズの多い削除に失敗します。
すべてのサブフォルダからすべてのファイルを削除したい場合は、
$ find . -name \* -type f -delete
```のコマンドを使用することができます。