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 a razão?
Responder1
A -b
opção não épadronizado, portanto, seu comportamento depende da implementação.
Muitos sistemas Linux usam GNU ls por padrão; define a -b
opção como
imprimir escapes no estilo C para caracteres não gráficos
e usa umimplementação de cotação elaborada. O caractere de espaço é um caractere não gráfico, portanto acaba sendo escapado.
No macOS, odefinição de-b
é diferente:
-B Forçar a impressão de caracteres não imprimíveis (conforme definido por
ctype(3)
e configurações de localidade atuais) em nomes de arquivos como\xxx
, ondexxxé o valor numérico do caractere em octal.-b Como-B, mas use códigos de escape C sempre que possível.
As ctype
funções (ou macros) consideram que o caractere de espaço pode ser impresso, portanto não pode ser escapado.