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在后台运行,紧接着/在前台运行。

相关内容