Shell
使用破折號 (-) 代替文件名
對於命令,如果使用
-
作為參數代替文件名將意味著 STDIN 或 STDOUT。
- 但在本例中,它創建了一個名為 的文件
-
:echo hello > -
我怎樣才能
-
在這個例子中表示 STDOUT? 2. 相反,我怎樣才能使-
一個文件在範例中命名-
,例如:cat -
-
用作文件名來表示標準輸入/標準輸出是許多程序使用的約定。它不是文件名的特殊屬性。核心不會將其辨識-
為特殊的,因此任何引用-
為文件名的系統呼叫都將-
直接用作文件名。使用 bash 重定向,
-
不被辨識為特殊文件名,因此 bash 將使用它作為文字文件名。當
cat
將字元串-
視為文件名時,它會將其視為標準輸入的同義詞。為了解決這個問題,您需要更改cat
看到的字元串,使其仍然引用名為-
. 通常的做法是在文件名前加上路徑 -./-
或/home/Tim/-
. 此技術也用於解決命令行選項與文件名衝突的類似問題,例如,稱為 的文件./-e
不會作為-e
程序的命令行選項出現。