macOS: o comando ls parou de funcionar

2

No meu terminal macOS (10.11.6), fiz algumas instalações no ambiente virtual do python. Depois disso, meu comando ls parou de funcionar. Está dando um erro:

$ ls
ls: illegal option -- -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

$ alias ls
alias ls='colourify ls --color'
    
por Shah Ismail 05.02.2017 / 07:59

5 respostas

0

O Homebrew atualizou para a nova versão do grc 1.10_1 e esta questão está resolvida.

    
por 11.02.2017 / 19:34
2

macOS (Darwin) ls não suporta a opção --color . Você tem outra cópia de coreutils instalada de algo como homebrew, macports ou pkgsrc que agora não está mais em ordem de PATH ?

    
por 05.02.2017 / 08:55
2

Which program really messed up with my ls cmd in the first place, is it python?

Seu comando ls está intocado. Seu ls alias provavelmente vem de uma configuração incorreta do shell Bourne Again.

Observe que o ls alias está executando um comando chamado grc , por meio de outro alias denominado colourify . Isto vem de Colorourizer genérico de Radovan Garabík , cujos aliases de shell Bourne Again (em grc.bashrc ) e aliases do shell Z (em grc.zsh ) configura um alias denominado ls .

Em algum lugar, em um arquivo rc, você está adicionando esses aliases ao seu shell interativo Bourne Again, por recomendações como esta resposta de estouro de pilha .

O alias do shell Z é

alias ls="grc --colour=auto ls"
que passa a opção --colour-auto para o comando grc , que é o comando que usa essa opção.

No entanto, o alias de shell do Bourne Again é

alias ls='colourify ls --color'
que é (através do colourify alias) efetivamente
alias ls='grc -es --colour=auto ls --color'
que está ambos executando a saída do comando ls através de um colorizador e tentando obter o comando ls para colorir sua saída.

O problema básico é que o autor desses aliases do Bourne Shell ( que foi Isaias Piña da Oracle em maio 2016 não serviu para executar o shell Bourne Again em algo diferente de um sistema operacional Linux, provavelmente esperando que, se você estiver usando o MacOS, esteja usando algo como Oh My Zsh. Um problema adicional é que o autor não permitiu que grc colorisse a saída de ls e, em vez disso, espera que ls colourize sua própria saída.

Então você tem várias opções:

  • Descubra onde você está adicionando esses aliases e corrija os alias ls errados de Isaias Piña para usar a opção -G no MacOS.
  • Descubra onde você está adicionando esses aliases e corrija os ls alias errados de Isaias Piña para não usar nenhuma opção e, em vez disso, confie no arquivo conf.ls do colorizador para fazer seu trabalho real; como Tom Mulder .
  • Descubra onde você está adicionando esses aliases e remova o ls alias incorreto de Isaias Piña, usando a variável de ambiente CLICOLOR para colorização; Como Noel B Alonso faz .
  • Descubra onde você está adicionando esses aliases e remova completamente o alias ls de Isaias Piña, usando seu próprio ls alias; como Arthur Nisnevich faz .
  • Desinstale totalmente o Colorourizer genérico.
  • Use o shell Z.
por 05.02.2017 / 12:02
0

Acabei de atualizar o iTerm2 para a versão Build 3.0.14 e me deparei com esse problema. O comando ls do coreutils não estava mais no meu caminho. Depois de correr:

brew install coreutils

e abrindo um novo shell, o problema foi corrigido. Eu tenho o seguinte alias em meu ~ / .bashrc:

export LS_OPTS='--color=auto'
alias ls='ls ${LS_OPTS}'
    
por 21.02.2017 / 02:38
-2

Eu configurei alias ls="ls -FHG" e funcionou para mim.

    
por 20.10.2017 / 12:01

Tags