GNU/Linux >> Tutoriales Linux >  >> Linux

La salida de Ls tiene saltos de línea pero se muestra en una sola línea. ¿Por qué?

Creo que puedo estar pasando por alto un punto relativamente fundamental con respecto a Shell. Salida de ls El comando por defecto separa la salida con líneas nuevas, pero el shell muestra la salida en una sola línea.

¿Puede alguien explicarme esto? Siempre supuse que la salida simplemente estaba separada por espacios, pero ahora que veo la salida separada por saltos de línea, espero que la salida se muestre en líneas separadas.

Ejemplo:

[email protected]:~/lpi103-4$ ls text*
text1  text2  text3

od muestra que la salida está separada por saltos de línea:

[email protected]:~/lpi103-4$ ls text* | od -c
0000000   t   e   x   t   1  n   t   e   x   t   2  n   t   e   x   t
0000020   3  n
0000022

Si hay saltos de línea, ¿por qué la salida no se muestra como:

text1 
text2
text3

Respuesta aceptada:

Cuando canaliza la salida, ls actúa de manera diferente.

Este hecho está oculto en la documentación de información:

Si la salida estándar es un terminal, la salida está en columnas (ordenadas verticalmente) y los caracteres de control se emiten como signos de interrogación; de lo contrario, la salida se muestra una por línea y los caracteres de control se emiten tal cual.

Para probarlo, intente ejecutar

ls

y luego

ls | less

Esto significa que si desea que se garantice que la salida sea un archivo por línea, independientemente de si se canaliza o redirige, debe ejecutar

ls -1

(-1 es el número uno)

O bien, puede forzar ls | less para generar en columnas ejecutando

ls -C

(-C es una C mayúscula)


Linux
  1. ¿Cómo saber en qué versión de Os X estoy desde la línea de comandos?

  2. ¿Procesar cada línea de salida de `ping` inmediatamente en Pipeline?

  3. ¿Cómo eliminar una sola línea del historial?

  4. Linux:¿cómo cambiar de forma robusta el dispositivo de salida Pulseaudio desde la línea de comandos?

  5. ¿Por qué hay una salida de ping después de que se haya terminado?

Cómo hacer una copia de seguridad de una sola base de datos MySQL desde la línea de comandos

¿Colorear la salida de los sensores?

Omitir la primera línea de cualquier salida de comando de Linux

Cómo imprimir nombres de grupos de Linux en varias líneas en lugar de una sola línea de salida

Línea de comando:Extraer subcadena de la salida

Listado de directorios según el tamaño de mayor a menor en una sola línea