
ls -b
debería imprimir los nombres de los archivos con caracteres no imprimibles, por ejemplo, ex ex.txt
debería mostrarse como ex\ ex.txt
, pero esto no funciona en macOS, sigue siendo ex ex.txt
. ¿Alguien sabe el motivo?
Respuesta1
La -b
opción no esestandarizado, por lo que su comportamiento depende de la implementación.
Muchos sistemas Linux utilizan GNU ls de forma predeterminada; define la -b
opción como
imprimir escapes estilo C para caracteres no gráficos
y utiliza unimplementación de cotización elaborada. El carácter de espacio no es un carácter gráfico, por lo que termina siendo un carácter de escape.
En macOS eldefinicion de-b
es diferente:
-B Forzar la impresión de caracteres no imprimibles (según lo definido por
ctype(3)
y configuración local actual) en nombres de archivos como\xxx
, dondexxxes el valor numérico del carácter en octal.-b Como-B, pero utilice códigos de escape C siempre que sea posible.
Las ctype
funciones (o macros) consideran que el carácter de espacio es imprimible, por lo que no se escapa.