Bash

如何在 bash rmdir 中轉義括號?

  • January 22, 2019

我有一個目錄,其名稱類似於10.2 (14C92)我想使用 rmdir -rf 刪除(以包含其內容)。我確實知道如何傳遞一個空格,\但我得到了結果:

-bash: syntax error near unexpected token ('

所以在我看來,我必須以某種方式從命令中逃脫括號。我如何正確地做到這一點?

您可以使用\轉義任何單個字元,()像使用空格一樣包含在內。雖然它有效,但如果您有很多字元/空格要轉義,它可能會很麻煩。

更快的替代方法是使用單引號( ') 來轉義整個字元串,例如:

rm -rf '10.2 (14C92)'

請記住,'轉義所有內容,因此如果需要,請小心使用它,例如,引號內的變數擴展。也就是說,使用雙引號也可以轉義空格和括號:

rm -rf "10.2 (14C92)"

此外,根據您的問題,您嘗試使用rmdir. rmdir僅適用於空目錄並且它沒有-r和/或-f標誌:

NAME rmdir - 刪除空目錄

概要 rmdir

$$ OPTION $$… 目錄… 描述 刪除 DIRECTORY(ies),如果它們是空的

你會想要使用rm -rf.

如果10.2 (14C92)確實是空的,一個簡單的

rmdir '10.2 (14C92)'

會做。

轉義是bash自行完成的,因此它適用於每個命令。換句話說,它根據自己的解析規則bash決定將什麼傳遞給命令,然後命令在解析它們後對參數進行操作。 bash

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