Shell

為什麼即使引用文件名,我也無法訪問名為 - 的文件?

  • November 23, 2021

我有一個名為-. 我想顯示它的內容。

  • 一種方法是做
cat ./-

因為cat -從標準輸入讀取。

  • 但是,為什麼cat "-"cat '-'被 shell 解釋為cat -

catshell 在看到它們之前會刪除所有引號。因此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.

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