“ls -b” não funciona no macOS

2

ls -b deve imprimir os nomes dos arquivos com caracteres não imprimíveis, por exemplo, ex ex.txt deve ser mostrado como ex\ ex.txt , mas isso não funciona no macOS, ainda é ex ex.txt . Alguém sabe o motivo?

    
por sudoer 02.11.2016 / 07:14

1 resposta

3

A opção -b não é padronizada , portanto, seu comportamento depende da implementação .

Muitos sistemas Linux usam o GNU ls por padrão; define a opção -b como

print C-style escapes for nongraphic characters

e usa uma elaborada implementação de cotação . O caractere de espaço é um caractere não gráfico e, portanto, acaba escapando.

No macOS, a definição de -b é diferente:

-B Force printing of non-printable characters (as defined by ctype(3) and current locale settings) in file names as \xxx, where xxx is the numeric value of the character in octal.

-b As -B, but use C escape codes whenever possible.

As funções ctype (ou macros) consideram que o caractere de espaço é imprimível, portanto não é ignorado.

    
por 02.11.2016 / 10:42

Tags