Character-Encoding
刪除所有以括號開頭的文件
我在一個以括號開頭的目錄中有很多文件。由於衝突,它們是由 Dropbox 生成的。任何轉義組合似乎都無濟於事:
rm -rf "(*" rm -rf "\(*" rm -rf \(*
ASfrostschutz 提到,它們似乎不是 ASCII 字元。我怎樣才能知道是否是這種情況,以及解決方法是什麼?
shell 使用您必須在此處考慮的某些規則來解釋命令行:
- 您可以使用 \ 轉義 shell 元字元,使其表現得像一個普通字元。
- 您可以使用單引號或雙引號,並且在這些大多數(使用雙引號)或所有(使用單引號)shell 元字元中會失去其特殊含義。
- 引號不必位於單詞邊界,因此
rm th"is fil"e
與rm "this file"
.- 那些角色
$$ $$?* 可用於文件名擴展。不得為此目的引用或轉義它們。
因此,您的情況可能的解決方案
rm -rf '('*
是rm -rf "("*
和rm -rf \(*
。我不知道為什麼最後一個在你的情況下不起作用。也許括號前面有一些空格?通過以下行,您應該能夠查看文件名中是否有任何有趣的字元:
for i in *; do od -c <<< "$i"; done