Rename
更改名稱中包含空格的文件的名稱
我不知道為什麼,但是當我用
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