如何建立名稱以符號“-”開頭的文件

如何建立名稱以符號“-”開頭的文件

我想touch在 Linux 終端機中使用該命令來創建一個名稱以 符號開頭的文件-,例如-attempt.

-我怎麼能克服這個特殊角色的事實呢?

例如,如果我想建立一個名為 的文件#attempt,我不能只寫touch #attempt

相反,我必須寫touch \#attempt,但在這種-情況下,即使我使用\它仍然不能很好地工作)。

答案1

兩種方式:

-遠離第一個字符

touch ./-foo

或使用--開關結束標記

touch -- -foo

答案2

touch \#attempt之所以有效,是因為井號對 shell 來說是特別的。同樣,您需要類似touch \(foo\), 或touch 'this & that'的檔案名稱帶有括號或與號等。

但轉義破折號並沒有幫助,因為它並不特殊到外殼,而是由 shell 啟動的實用程式。執行 shell 命令touch \-foo列與運行相同touch -foo,無論如何touch都會得到單一參數-foo

所以,與其逃避,還需要做點別的事情。

告訴程式停止將命令參數解釋為(可能的)選項的標準方法是將參數插入--選項之後。例如,這將rm使用選項-f在名為的檔案上運行-r

rm -f -- -r

(並且rm -- --會刪除一個名為 的檔案--。)

或者,您可以透過確保破折號不是檔案名稱的第一個字元(通常是在前面加上./.同樣,這將刪除一個名為的檔案-rf

rm ./-rf

相關內容