Terminal

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

  • October 22, 2021

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

-我怎樣才能克服這是一個特殊字元的事實?

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

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

兩種方式:

-從第一個字元移開

touch ./-foo

或使用--結束開關標記

touch -- -foo

touch \#attempt之所以有效,是因為井號對外殼來說是特殊的。同樣,您需要類似touch \(foo\), 或touch 'this & that'帶有括號或&符號等的文件名。

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

因此,除了逃避之外,還需要其他東西。

告訴程序停止將命令參數解釋為(可能的)選項的標準方法是--在選項之後插入參數。例如,這將rm與選項一起執行-f,在一個名為的文件上-r

rm -f -- -r

(並rm -- --會刪除一個名為--.)的文件

或者,您可以通過確保破折號不是文件名的第一個字元來解決此問題,通常通過在./. 同樣,這將刪除一個名為-rf

rm ./-rf

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