Ci sono molti comandi per visualizzare il contenuto dei file in Linux. Tra questi, la tail
e head
i comandi stampano rispettivamente l'output dell'ultima e delle prime dieci righe di un file. In alcuni casi, l'output o l'errore del lavoro o dello script inviato crea un file molto grande e il risultato più recente viene stampato alla fine del file. Puoi usare tail
, invece del cat
comando, per visualizzare solo le ultime righe del file. A volte hai bisogno di più opzioni con la tail
comando per visualizzare correttamente il contenuto del file. Di seguito mostrerò l'uso di tail
e head
comandi.
La sinossi di entrambi i comandi è la seguente:
tail [OPTION]... [FILE]...
head [OPTION]... [FILE]...
Ho creato anche due file di saluti in diverse lingue con numeri di riga. Ogni file contiene un totale di 15 righe. Vediamo il contenuto dei file con un semplice cat
comando:
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
Ora userò entrambi i tail
e head
comandi senza alcuna opzione per visualizzare il greetings1.txt
file. La tail
Il comando mi dà un output delle ultime dieci righe, mentre il head
comando mi dà le prime dieci righe.
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
Nell'esempio sopra, puoi vedere entrambi i comandi stampare la prima e le ultime dieci righe del file.
Puoi configurare il numero di righe visualizzate per entrambi i comandi con l'opzione -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
Entrambi i comandi possono essere utilizzati anche per più file. Assegno il nome di entrambi i file con uno spazio tra di loro e stampa l'output. Nell'esempio seguente, ho usato l'opzione -n
per limitare l'uscita. Se salto il -n
opzione, i comandi stampano le dieci righe predefinite di ciascun file. Come mostrato di seguito, ho usato più di un file come argomento ed entrambi i comandi stampano un'intestazione di una riga prima dell'output di ciascun file:
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
L'opzione più importante per la tail
il comando è -f
. In alcuni casi, quando gli utenti eseguono un lavoro o uno script, vengono creati file di registro o di errore. Devo tenere traccia del file di registro per determinare se il rispettivo script funziona correttamente o meno. In questo momento, devo usare l'opzione -f
con la tail
comando, che stampa l'output delle nuove righe che vengono create dallo script. Un altro esempio in cui puoi usare l'opzione -f
con la tail
il comando è /var/log/messages
file.
Ecco un semplice script, che viene eseguito in background e aggiunge singole parole ad ogni riga con un ritardo di un secondo:
for i in {16..100}; do echo “$i JaiBhim” >> greetings1.txt; sleep 1; done &
Nota :Ho usato &
alla fine del comando in modo che lo script venga eseguito in background.
Ora, sullo stesso terminale, usa tail
comando con opzione -f
e il nome del file come argomento. Puoi vedere che la nuova riga viene aggiunta nello stesso file:
tail -f greetings1.txt
Concludi
Come puoi vedere, sia la tail
e il head
i comandi sono molto utili per controllare esattamente quale contenuto del file verrà stampato sullo schermo. Provali!
[ Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente. ]