Bash - “/” é um diretório

3

Isso é realmente confuso ...

Atualmente tenho um computador Debian 8 e me conecto a ele usando o PuTTY (SSH).
O console padrão usado é o Bash.

Quando tento passar um caminho para um alias, ocorre o seguinte erro:

 -bash: /: Is a directory

Aqui está um exemplo:

Alémdisso,háumcomportamentobizarro:executar'/'ou"/" causa o mesmo erro, como se o Bash estivesse ignorando citações.

Se for importante, o alias explorer foi definido assim:

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

Este é o comportamento esperado?
Se não, o que estou fazendo errado?

    
por Ismael Miguel 24.06.2016 / 18:52

2 respostas

14

A maneira como você escreveu seu alias, o comando que você executa seria expandido como

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

Isso executará pcmanfm sem nenhuma opção como um job em background e então tentará executar / como um comando.

Você provavelmente deseja uma função em vez de um alias

explorer() { pcmanfm "$@" >/dev/null 2>&1 & }
    
por 24.06.2016 / 18:59
4

O alias fornece uma expansão literal. Então, executando explorer / mapeia para

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

Isso executa pcmanfm no plano de fundo, seguido imediatamente por / no primeiro plano.

    
por 24.06.2016 / 19:00

Tags