Rename

更改名稱中包含空格的文件的名稱

  • March 28, 2014

我不知道為什麼,但是當我用mv命令更改此文件名時,它會出現錯誤說明not a directory

-bash-4.1# mv {{ THEME SANITIZED }}.hacks.css myomega.hacks.css

mv "{{ THEME SANITIZED }}.hacks.css" myomega.hacks.css將工作。

你需要告訴 shell 你的意思是大括號和空格是文件名的一部分,而不是被解釋為 shell 語法。

您可以在單引號內鍵入包含特殊字元的文件名。這適用於除單引號本身之外的每個字元。這是腳本中最簡單的方法。

mv '{{ THEME SANITIZED }}.hacks.css' myomega.hacks.css

如果您需要在單引號字元串中使用單引號,則可以使用四字元序列'\''

mv 'It'\'s' wierd' this_is_weird

或者,您可以在任何字元之前放置一個反斜杠,這會使其失去其特殊含義。在沒有特殊含義的字元之前放一個反斜杠並沒有什麼壞處,但這當然是額外不必要的輸入。

mv \{\{\ THEME\ SANITIZED\ \}\}.hacks.css myomega.hacks.css

如果文件名來自變數,請在變數副檔名周圍使用雙引號以保留特殊字元(如 中的裸變數,變數mv $source $destination值中的一些特殊字元會被擴展)。

source='{{ THEME SANITIZED }}.hacks.css'
destination=myomega.hacks.css
mv "$source" "$destination"

在命令行上,鍵入此類文件名的最簡單方法是依賴完成。您需要至少輸入第一個字元,然後按Tab

mv \{``Tab

mv \{\{\ THEME\ SANITIZED\ \}\}.hacks.css

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