GNU/Linux >> Linux Esercitazione >  >> Linux

L'output da Ls ha nuove righe ma viene visualizzato su una singola riga. Come mai?

Penso che potrei trascurare un punto relativamente fondamentale riguardante la shell. Output da ls il comando per impostazione predefinita separa l'output con le nuove righe, ma la shell visualizza l'output su una singola riga.

Qualcuno può spiegarmi questo? Ho sempre pensato che l'output fosse semplicemente separato da spazi, ma ora che vedo l'output separato da nuove righe, mi aspetto che l'output venga visualizzato su righe separate.

Esempio:

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

od mostra che l'output è separato da nuove righe:

[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

Se sono presenti nuove righe, perché l'output non viene visualizzato come:

text1 
text2
text3

Risposta accettata:

Quando esegui il pipe dell'output, ls agisce diversamente.

Questo fatto è nascosto nella documentazione informativa:

Se l'output standard è un terminale, l'output è in colonne (ordinate verticalmente) e i caratteri di controllo vengono emessi come punti interrogativi; in caso contrario, l'output viene elencato uno per riga ei caratteri di controllo vengono emessi così come sono.

Per dimostrarlo, prova a correre

ls

e poi

ls | less

Ciò significa che se vuoi garantire che l'output sia un file per riga, indipendentemente dal fatto che venga reindirizzato o reindirizzato, devi eseguire

ls -1

(-1 è il numero uno)

Oppure puoi forzare ls | less per produrre in colonne eseguendo

ls -C

(-C è una C maiuscola)


Linux
  1. Linux:come cambiare in modo affidabile il dispositivo di uscita Pulseaudio dalla riga di comando?

  2. Perché c'è un output di ping dopo che è stato terminato?

  3. Perché Ls -l genera una dimensione diversa da Ls -s?

  4. Come recuperare solo la linea necessaria dall'uscita del terminale?

  5. Iterazione su ogni riga dell'output di ls -l

Come eseguire il backup di un singolo database MySQL dalla riga di comando

Colora l'output dei sensori?

Rimuovere la ridondanza dalle colonne di output?

Come modificare l'uscita audio in HDMI dalla riga di comando?

Riga di comando:estrai la sottostringa dall'output

Clonezilla dalla riga di comando