.swp
現在のディレクトリ内のすべてのファイルを見つけて削除しようとしています。次のコマンドを使用しています。
rm -i `find . | grep .swp$`
ただし、毎回次のエラーが発生します。
rm: missing operand
Try `rm --help' for more information.
私は何が間違っていましたか?
ベストアンサー1
表示されるエラーメッセージは、名前パターンと一致するファイルがないことを示すことがあります.swp$
。作成した内容を実行する通常より安全な方法(すべてのファイル名を処理するため):
find . -name '*.swp' -print0 | xargs -0 rm -i --
上記のコードスニペットでは、null文字を含むレコードを区別するために-print0
これを使用しましたfind
。デフォルトは残念ながら、ファイル名では機能しない改行文字です。を使用すると、-print0
このコマンドは、改行を含むファイル名を含むすべてのファイル名で機能します。同様にxargs -0
、その入力はヌルで区切られたレコードとして扱われます。