O Homebrew atualizou para a nova versão do grc 1.10_1 e esta questão está resolvida.
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'
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
?
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:
ls
errados de Isaias Piña para usar a opção -G
no MacOS. 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 . ls
alias incorreto de Isaias Piña, usando a variável de ambiente CLICOLOR
para colorização; Como Noel B Alonso faz .
ls
de Isaias Piña, usando seu próprio ls
alias; como Arthur Nisnevich faz . 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}'
Eu configurei alias ls="ls -FHG"
e funcionou para mim.