Por que eu pego um trem quando corro 'ls'?

26

Recentemente, notei algo estranho que não gosto muito:

Então, por que estou recebendo um trem ao executar ls ? E como posso parar isso e fazer com que ele se comporte normalmente? Isso é um ovo de páscoa que eu descobri? Estou executando o Ubuntu GNOME 15.04.

Atualização de informações:

A execução de which ls me fornece o mesmo trem e a execução de ls -l $(which ls) me fornece outro tipo de trem.

A execução de command -v ls não produz nada. E executar command -v sl também não produz nada.

Isso tudo pode ter algo a ver com o pacote cow (ou algo parecido) que eu instalei recentemente, que prometeu 'clarear um pouco as coisas'.

    
por Great Uncle Bulgaria 17.10.2015 / 19:45

2 respostas

31
  1. Tente remover o pacote engraçado por

    sudo apt-get purge sl 
    
  2. Verifique seus aliases para ls , por exemplo no seu ~/.bashrc ou ~/.profile .

  3. Verifique o binário /usr/games/sl e exclua

    sudo rm /usr/games/sl
    
  4. Verifique a saída de

    strace sl |& grep execve
    strace ls |& grep execve
    

    se o ponto três não tiver sucesso.

  5. E, no futuro, NÃO instale nada que prometa "clarear um pouco as coisas" na descrição. ;)

por A.B. 17.10.2015 / 19:48
16

Geralmente, você pode prefixar \ a um comando para desabilitar o aliasing apenas para aquela instância do comando executado. Por exemplo,

[2023]$ alias ls
alias ls='ls -F -Chs --color=tty'
[2024]$ ls
total 140K
4.0K bin/           0 Downloads@           0 prog.git@
...

[2025]$ \ls
bin  Downloads     doc.git  freertos.git  prog.git  tmp
...

Então, eu recomendo testar o seu ls com um '\' prefixado

Em seguida, você pode tentar executar o comando ls diretamente com o caminho completo.

/bin/ls

Em seguida, comando / bin / ls

também, verifique seu caminho,

echo $PATH
make sure that /bin is the first entry.
$PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin:usr/local/sbin:/usr/local/bin

Mas, acredito que remover cow ajudaria.

    
por Om Narasimhan 18.10.2015 / 01:07