GNU/Linux >> Znalost Linux >  >> Linux

Výstup z Ls má nové řádky, ale zobrazuje se na jednom řádku. Proč?

Myslím, že možná přehlížím poměrně zásadní bod týkající se shellu. Výstup z ls příkaz ve výchozím nastavení odděluje výstup pomocí nových řádků, ale shell zobrazuje výstup na jednom řádku.

Může mi to někdo vysvětlit? Vždy jsem předpokládal, že výstup je jednoduše oddělen mezerami, ale teď, když vidím výstup oddělený novými řádky, očekával bych, že se výstup zobrazí na samostatných řádcích.

Příklad:

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

od ukazuje, že výstup je oddělen novými řádky:

[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

Pokud jsou přítomny nové řádky, proč se výstup nezobrazuje jako:

text1 
text2
text3

Přijatá odpověď:

Když výstup zprostředkujete, ls působí jinak.

Tato skutečnost je skryta v informační dokumentaci:

Je-li standardním výstupem terminál, výstup je ve sloupcích (seřazených svisle) a řídicí znaky jsou na výstupu jako otazníky; jinak je výstup uveden jeden na řádek a řídicí znaky se vypisují tak, jak jsou.

Chcete-li to dokázat, zkuste spustit

ls

a poté

ls | less

To znamená, že pokud chcete, aby výstup byl zaručen jako jeden soubor na řádek, bez ohledu na to, zda je zprostředkován nebo přesměrován, musíte spustit

ls -1

(-1 je číslo jedna)

Nebo můžete vynutit ls | less pro výstup ve sloupcích spuštěním

ls -C

(-C je velké C)


Linux
  1. Zpracovat každý řádek výstupu z `ping` okamžitě v potrubí?

  2. Jak odstranit jeden řádek z historie?

  3. Jak získat pouze potřebnou linku z výstupu terminálu?

  1. Iterování přes každý řádek výstupu ls -l

  2. proč je výstup `du` často tak odlišný od `du -b`

  3. Vynechání prvního řádku z jakéhokoli výstupu příkazu Linuxu

  1. Jak zjistit, jakou verzi OS X používám z příkazového řádku?

  2. Jak tisknout názvy linuxových skupin na více řádcích namísto jednořádkového výstupu

  3. Výpis adresářů na základě velikosti od největšího po nejmenší na jednom řádku