如何刪除以「$」開頭的資料夾?

如何刪除以「$」開頭的資料夾?

我創建了一個名為“$pattern”的目錄,現在每當我嘗試刪除它時,它都會說

模式:未定義的變數。

我努力了:

$ rm -r $pattern
$ rm -rf $pattern
$ rm "$ option[value='2016']"

答案1

$、空格'[是大多數 shell 中的特殊字元。要刪除它們的特殊意義,您必須使用 shell 的引用機制。

引用語法隨 shell 變化很大

在我知道的所有 shell 中,您可以使用單引號來引用除單引號、反斜杠和換行符之外的所有字符(在類似 Bourne 的 shell 中,它也引用最後兩個字符,除了\某些中的反引號)。

rm -r '$pattern'

應該可以在大多數常見的 shell 中工作。

rm -r \$pattern

可以在除系列 shell 之外的所有 shell 中工作(除了類似於 Bourne 的內部反引號之外)rc

同樣適用於:

rm "\$option[value='2016']"

rc-like shell 中,您可以使用:

rm '$option[value=''2016'']'

答案2

如果目錄為空:

rmdir \$pattern

否則:

rm -r \$pattern

(它將遞歸刪除該資料夾包含的任何檔案)

答案3

當您需要對包含特殊字元的檔案進行操作時,可以選擇使用 bash 自動完成功能:開始輸入命令(在本例中為rmdir),然後按Tab幾次。這將循環目前目錄中的所有檔案/目錄,自動轉義所有特殊字元。

如果您操作的檔案名稱很長,這也很有效。

答案4

您只需使用“\”轉義該字符,這也是在 Web 應用程式中編寫 SQL 查詢的常見做法,以防止執行預期之外的資料庫命令。

相關內容