括弧で始まるすべてのファイルを削除

括弧で始まるすべてのファイルを削除

私のディレクトリに括弧で始まる多くのファイルがあります。競合のため、Dropbox で作成されます。エスケープの組み合わせが役に立たないようです。

rm -rf "(*"
rm -rf "\(*"
rm -rf \(*

Frost Schutzが述べたように、ASCII文字ではないようです。これが本当であるかどうかをどうやって知ることができ、解決策は何ですか?

ベストアンサー1

シェルは、ここで考慮する必要がある特定の規則を使用してコマンドラインを解釈します。

  • \を使用してシェルメタ文字をエスケープして、通常の文字のように動作させることができます。

  • 一重引用符または二重引用符を使用すると、これらのシェルメタ文字の大部分(二重引用符を含む)または全体(一重引用符を含む)で特別な意味を失う可能性があります。

  • 引用符は単語の境界にある必要はないので、rm th"is fil"e同じですrm "this file"

  • ファイル名拡張には[]?*文字を使用できます。この目的のために引用またはエスケープしないでください。

従ってあなたの場合の可能な解決はrm -rf '('*およびです。あなたの場合、最後がなぜ機能しないのかわかりません。括弧の前にスペースがあるかもしれませんか?rm -rf "("*rm -rf \(*

次の行を使用すると、ファイル名に興味深い文字があるかどうかを確認できます。

for i in *; do od -c <<< "$i"; done

おすすめ記事