Bash - “/”是一本目錄

Bash - “/”是一本目錄

這實在是令人困惑…

我目前有一台 Debian 8 計算機,我使用 PuTTY (SSH) 連接到它。
使用的預設控制台是 Bash。

當我嘗試將路徑傳遞給別名時,出現以下錯誤:

 -bash: /: Is a directory

這是一個例子:

油灰

另外,還有一個奇怪的行為:運行'/'"/"導致相同的錯誤,就好像 Bash 忽略引號一樣。


如果重要的話,別名的explorer定義如下:

alias explorer='pcmanfm 1>/dev/null 2>&1 &'

這是預期的行為嗎?
如果不是,我做錯了什麼?

答案1

按照您編寫別名的方式,您執行的命令將擴展為

pcmanfm 1>/dev/null 2>&1 & '/'

這將pcmanfm在沒有任何選項的情況下作為後台作業運行,並且然後/嘗試作為命令運行。

您可能需要一個函數而不是別名

explorer() { pcmanfm "$@" >/dev/null 2>&1 & }

答案2

別名提供字面擴展。所以運行explorer /映射到

pcmanfm 1>/dev/null 2>&1 & /

pcmanfm在後台運行,緊接著/在前台運行。

相關內容