findなしでrm `find lib / -name *.swp`と同等のものは何ですか?

findなしでrm `find lib / -name *.swp`と同等のものは何ですか?

lib最後に、ディレクトリ内のすべてのファイルを削除したいと思います。.swp

次のことなくどのようにこれを行うことができますかfind

rm `find lib/ -name *.swp`

ベストアンサー1

照会の良い点は再帰的であるということです。一部の最新のシェルは検索再帰を提供しますが、POSIXと互換性がないため、どこでも動作することに頼ることはできません。以下は、bash 4.0以降で実行される例です。

shopt -s globstar
for f in **/*.swp; do
    rm -- "$f"
done

すでに持っている find コマンドの場合、スペースを含むすべてのファイル (スペースなど) が削除されます。以下は固定例です。

find lib/ -name '*.swp' -exec rm {} +

一部のバージョンでは、次のものをfind使用できます-delete

find lib/ -name '*.swp' -delete

おすすめ記事