Terminal
如何創建名稱以符號“-”開頭的文件
我想
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