Shell為什麼即使引用文件名,我也無法訪問名為
為什麼即使引用文件名,我也無法訪問名為 -
的文件?
我有一個名為
-
. 我想顯示它的內容。
- 一種方法是做
cat ./-
因為
cat -
從標準輸入讀取。
- 但是,為什麼
cat "-"
又cat '-'
被 shell 解釋為cat -
?
cat
shell 在看到它們之前會刪除所有引號。因此cat -
,在空格標記化、萬用字元擴展和 shell 刪除引號之後cat "-"
,cat '-'
所有這些都作為數組傳遞。['cat', '-']
引號由 shell 使用,而不是傳遞給命令:
例如
cat "hello world" #this passes the single token `hello world`, to `cat`, as argument 1. However the quotes are not passed. cat "-" # this passes the single token `-`, to `cat`, as argument 1. The same as if no quotes had been used.