tail
tail (dalla lingua inglese tail, "coda", per estensione "in fondo") è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che mostra sullo standard output le ultime linee di dati provenienti da uno o più file di testo o dallo standard input. Esso è anche in grado di mantenere sotto osservazione uno o più file di testo o named pipe, rilevando e mostrando le linee aggiunte in coda nel frattempo. È un tipo di filtro.
tail viene spesso usato in una pipeline software sia come ultimo comando per mostrare solo una parte dei risultati, sia come fonte di dati a partire da un file di log in costante aggiornamento.
La versione GNU di tail è in grado di operare contemporaneamente su più file, precedendo l'output relativo ad ogni file con una linea di intestazione che indica a quale file si riferisce.
Sintassi
[modifica | modifica wikitesto]La sintassi del comando tail è la seguente:
tail [opzioni] [--] [file]
Il parametro facoltativo file indica il nome dei file in input. Se omesso, viene letto lo standard input.
Il doppio trattino --
(facoltativo) indica che i parametri successivi non sono da considerarsi opzioni. Il comportamento predefinito prevede di mostrare solo le ultime 10 linee di dati.
Opzioni
[modifica | modifica wikitesto]Tra le opzioni principali di tail vi sono:
-c pos
- Indica la posizione pos nel file a partire dalla quale mostrare i risultati, espressa in numero di byte a partire dalla fine dei dati (con
1
che indica l'ultimo byte). Se pos è preceduto dal segno45
), la posizione è calcolata invece a partire dall'inizio dei dati (il primo byte ha posizione1
). -f
- Se i dati provengono da un file o da una named pipe, fa in modo che tail rimanga in esecuzione (invece di terminare subito) rilevando e mostrando eventuali aggiunte effettuate da parte di altri processi.
-n pos
- Indica la posizione pos nel file a partire dalla quale mostrare i risultati, espressa in numero di linee a partire dalla fine dei dati (con
1
che indica l'ultima linea). Se pos è preceduto dal segno45
), la posizione è calcolata invece a partire dall'inizio dei dati (la prima linea ha posizione1
). -pos
- Forma storica dell'opzione
-n
(ad esempiotail -3
equivale atail -n 3
).
Monitoraggio di file
[modifica | modifica wikitesto]L'opzione -f
(dall'inglese follow, segui) permette di seguire in tempo reale le aggiunte in coda ad un file o ad una named pipe: in questo caso tail, oltre a mostrare i dati come specificato, resta in esecuzione mostrando le aggiunte effettuate nel frattempo da altri processi.
Ciò è particolarmente utile per tenere sotto controllo i file di log, o per fornire dati in ingresso ad una pipeline software.
Per interrompere l'esecuzione di tail in questo caso occorre spedirgli un segnale che lo faccia terminare, ad esempio premendo la combinazione di tasti Ctrl C.
Una funzionalità analoga è presente nel comando less, che offre in più la possibilità di scorrere all'indietro le linee aggiunte nel frattempo.
Esempi
[modifica | modifica wikitesto]Mostra le ultime 10 righe del file dati.txt
:
tail -n 10 dati.txt
Mostra le ultime 20 righe del file dati.txt
:
tail -n 20 dati.txt
Mostra le righe del file dati.txt
a partire dalla ventesima:
tail -n 20 dati.txt
Mostra gli ultimi 15 byte del file dati.txt
:
tail -c 15 dati.txt
Mostra le ultime 10 righe del file /var/adm/syslog
e rimane in attesa di dati aggiuntivi, mostrandoli:
tail -f -n 10 /var/adm/syslog
Note
[modifica | modifica wikitesto]Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- (EN) tail: Output the last part of files, su GNU Coreutils manual. URL consultato il 7 giugno 2008.
- (EN) pagina man di tail per FreeBSD, su freebsd.org.
- (EN) Tail for Windows, su tailforwindows.org. URL consultato il 6 settembre 2014 (archiviato dall'url originale il 9 settembre 2014).