Existuje mnoho příkazů pro zobrazení obsahu souborů v Linuxu. Mezi nimi tail
a head
příkazy vytisknou výstup posledních a prvních deseti řádků souboru. V některých případech výstup nebo chyba vaší odeslané úlohy nebo skriptu vytvoří velmi velký soubor a nejnovější výsledek se vytiskne na konec souboru. Můžete použít tail
, namísto cat
k zobrazení posledních několika řádků souboru. Někdy potřebujete více možností s tail
pro správné zobrazení obsahu souboru. Níže předvedu použití tail
a head
příkazy.
Synopse obou příkazů je následující:
tail [OPTION]... [FILE]...
head [OPTION]... [FILE]...
Vytvořil jsem dva soubory pozdravů v různých jazycích s čísly řádků. Každý soubor má celkem 15 řádků. Podívejme se na obsah souborů pomocí jednoduchého cat
příkaz:
root@jaibhim:~# cat greetings1.txt
1 Jai Bhim
2 Jai Bhim
3 Jai Bhim
4 Jai Bhim
5 Jai Bhim
6 Jai Bhim
7 Jai Bhim
8 Jai Bhim
9 Jai Bhim
10 Jai Bhim
11 Jai Bhim
12 Jai Bhim
13 Jai Bhim
14 Jai Bhim
15 Jai Bhim
root@jaibhim:~# cat greetings2.txt
1 Good Morning
2 Good Morning
3 Good Morning
4 Good Morning
5 Good Morning
6 Good Morning
7 Good Morning
8 Good Morning
9 Good Morning
10 Good Morning
11 Good Morning
12 Good Morning
13 Good Morning
14 Good Morning
15 Good Morning
Nyní použiji oba tail
a head
příkazy bez jakýchkoli voleb pro zobrazení greetings1.txt
soubor. tail
příkaz mi dává výstup posledních deseti řádků, zatímco head
příkaz mi poskytne prvních deset řádků.
root@jaibhim:~# tail greetings1.txt
6 Jai Bhim
7 Jai Bhim
8 Jai Bhim
9 Jai Bhim
10 Jai Bhim
11 Jai Bhim
12 Jai Bhim
13 Jai Bhim
14 Jai Bhim
15 Jai Bhim
root@jaibhim:~# head greetings1.txt
1 Jai Bhim
2 Jai Bhim
3 Jai Bhim
4 Jai Bhim
5 Jai Bhim
6 Jai Bhim
7 Jai Bhim
8 Jai Bhim
9 Jai Bhim
10 Jai Bhim
Ve výše uvedeném příkladu můžete vidět, že oba příkazy vytisknou prvních a posledních deset řádků souboru.
Počet řádků zobrazených pro oba příkazy můžete nakonfigurovat pomocí volby -n
.
root@jaibhim:~# tail -n 3 greetings1.txt
13 Jai Bhim
14 Jai Bhim
15 Jai Bhim
root@jaibhim:~# head -n 3 greetings1.txt
1 Jai Bhim
2 Jai Bhim
3 Jai Bhim
Oba příkazy lze také použít pro více souborů. Oběma souborům dám název s mezerou mezi nimi a vytiskne se výstup. V níže uvedeném příkladu jsem použil možnost -n
k omezení výstupu. Pokud přeskočím -n
příkazy vytisknou výchozích deset řádků každého souboru. Jak je uvedeno níže, jako argument jsem použil více než jeden soubor a oba příkazy vytisknou před výstupem každého souboru jednořádkové záhlaví:
root@jaibhim:~# tail -n 3 greetings1.txt greetings2.txt
==> greetings1.txt <==
13 Jai Bhim
14 Jai Bhim
15 Jai Bhim
==> greetings2.txt <==
13 Good Morning
14 Good Morning
15 Good Morning
root@jaibhim:~# head -n 3 greetings1.txt greetings2.txt
==> greetings1.txt <==
1 Jai Bhim
2 Jai Bhim
3 Jai Bhim
==> greetings2.txt <==
1 Good Morning
2 Good Morning
3 Good Morning
Nejdůležitější možnost pro tail
příkaz je -f
. V některých případech, když uživatelé spustí úlohu nebo skript, vytvoří se soubory protokolu nebo chyb. Potřebuji sledovat soubor protokolu, abych zjistil, zda příslušný skript funguje správně nebo ne. V tuto chvíli musím použít volbu -f
s tail
příkaz, který vytiskne výstup nových řádků, které skript vytváří. Další příklad, kde můžete použít volbu -f
s tail
příkaz je /var/log/messages
soubor.
Zde je jednoduchý skript, který běží na pozadí a přidává jednotlivá slova na každý řádek se zpožděním jedné sekundy:
for i in {16..100}; do echo “$i JaiBhim” >> greetings1.txt; sleep 1; done &
Poznámka :Použil jsem &
na konci příkazu, aby skript běžel na pozadí.
Nyní na stejném terminálu použijte tail
příkaz s volbou -f
a název souboru jako argument. Můžete vidět, že se nový řádek přidává do stejného souboru:
tail -f greetings1.txt
Zabalit
Jak můžete vidět, oba tail
a head
Příkazy jsou velmi užitečné pro přesné ovládání toho, jaký obsah souboru se vytiskne na obrazovku. Vyzkoušejte je!
[ Chcete si vyzkoušet Red Hat Enterprise Linux? Stáhněte si ji nyní zdarma. ]