Character-Encoding

刪除所有以括號開頭的文件

  • October 30, 2013

我在一個以括號開頭的目錄中有很多文件。由於衝突,它們是由 Dropbox 生成的。任何轉義組合似乎都無濟於事:

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

ASfrostschutz 提到,它們似乎不是 ASCII 字元。我怎樣才能知道是否是這種情況,以及解決方法是什麼?

shell 使用您必須在此處考慮的某些規則來解釋命令行:

  • 您可以使用 \ 轉義 shell 元字元,使其表現得像一個普通字元。
  • 您可以使用單引號或雙引號,並且在這些大多數(使用雙引號)或所有(使用單引號)shell 元字元中會失去其特殊含義。
  • 引號不必位於單詞邊界,因此rm th"is fil"erm "this file".
  • 那些角色

$$ $$?* 可用於文件名擴展。不得為此目的引用或轉義它們。

因此,您的情況可能的解決方案rm -rf '('*rm -rf "("*rm -rf \(*。我不知道為什麼最後一個在你的情況下不起作用。也許括號前面有一些空格?

通過以下行,您應該能夠查看文件名中是否有任何有趣的字元:

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

引用自:https://unix.stackexchange.com/questions/98222