tail

Da Wikipedia, l'enciclopedia libera.

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.

Uso[modifica | modifica sorgente]

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.

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 segno + (ad esempio +45), la posizione è calcolata invece a partire dall'inizio dei dati (il primo byte ha posizione +1).
-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 segno + (ad esempio +45), la posizione è calcolata invece a partire dall'inizio dei dati (la prima linea ha posizione +1).
-pos
Forma storica dell'opzione -n (ad esempio tail -3 equivale a tail -n 3).

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.

Monitoraggio di file[modifica | modifica sorgente]

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 sorgente]

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 sorgente]

  1. ^ (EN) tail in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato il 7 giugno 2008.

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica