Nomes de arquivos citados com espaços na saída ls no OSX

3

O problema

Eu não quero ver nomes de arquivos quando eles contêm espaços.

Exemplo

No OSX, vejo isso ao executar ls :

> ls -l
total 0
drwxr-xr-x 2 mafro staff 68 Mar 16 09:02 'dir with spaces'
drwxr-xr-x 2 mafro staff 68 Mar 16 09:02 dir_with_spaces

Na minha caixa Debian, é assim:

> ls -l
total 8
drwxr-xr-x 2 mafro mafro 4096 Mar 16 09:02 dir with spaces
drwxr-xr-x 2 mafro mafro 4096 Mar 16 09:02 dir_with_spaces

Meu shell é zsh com prezto e uma pequena quantidade de minha própria personalização. Eu (deveria) ter exatamente os mesmos dotfiles nas duas caixas

Aqui está ls . É o mesmo em ambos os sistemas:

> which ls
ls: aliased to ls --group-directories-first --color=auto
    
por mafrosis 16.03.2016 / 14:11

2 respostas

3

Este é um novo recurso do Coreutils ls .

A partir da documentação da informação:

‘-N’
‘--literal’
‘--quoting-style=literal’

Do not quote file names. However, with ‘ls’ nongraphic characters are still printed as question marks if the output is a terminal and you do not specify the ‘--show-control-chars’ option.

    
por 16.03.2016 / 17:19
1

Para desabilitar esse recurso, adicione export QUOTING_STYLE=literal ao seu ~/.bashrc ou, se você estiver usando coreutils GNU recentes com shells que não suportam export var=value , use:

QUOTING_STYLE=literal
export QUOTING_STYLE

IMO, os estilos de cotação adicionados recentemente são um bom recurso, mas eles não devem ter alterado o comportamento padrão porque Ele quebra muitos scripts e hábitos de linha de comando existentes - especialmente para pessoas que estão fazendo a Coisa Certa e citando corretamente suas variáveis .

BTW, o Debian reverteu o comportamento no coreutils 8.25-2, portanto, ele estava presente brevemente em sid em 8.25-1.

    
por 17.03.2016 / 01:42

Tags