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バックグラウンドで実行され、その後すぐに/フォアグラウンドで実行されます。

関連情報