A volte, mentre lavori sulla riga di comando in Linux, potresti voler creare un nuovo file. Oppure, a volte è necessario modificare i timestamp di un file. Bene, esiste un'utilità che puoi utilizzare in entrambi questi scenari. Lo strumento in questione è touch e in questo tutorial ne comprenderemo le funzionalità di base attraverso esempi di facile comprensione.
Tieni presente che tutti gli esempi che useremo qui sono stati testati su una macchina Ubuntu 16.04.
Comando Linux Touch
Il comando touch viene utilizzato principalmente per modificare i timestamp dei file, ma se il file (il cui nome è passato come argomento) non esiste, lo strumento lo crea.
Di seguito è riportata la sintassi generica del comando:
touch [OPTION]... FILE...
Ed ecco come la pagina man spiega questo comando:
DESCRIPTION
Update the access and modification times of each FILE to the current
time. A FILE argument that does not exist is created empty, unless -c or -h
is supplied. A FILE argument string of - is handled specially and causes touch to
change the times of the file associated with standard output.
I seguenti esempi di domande e risposte ti daranno un'idea migliore di come funziona lo strumento.
1. Come modificare il tempo di accesso/modifica utilizzando il comando touch
Questo è semplice e abbastanza diretto. Prendiamo un file esistente come esempio. Lo screenshot seguente mostra i tempi di accesso e modifica per un file chiamato 'apl.c.'
Ecco come puoi utilizzare il comando touch per modificare i tempi di accesso e modifica del file:
touch apl.c
La schermata seguente conferma la modifica di questi timestamp.
2. Come modificare solo l'ora di accesso o di modifica
Per impostazione predefinita, il comando touch modifica i tempi di accesso e di modifica del file di input. Tuttavia, se lo desideri, puoi limitare questo comportamento a uno qualsiasi di questi timestamp. Ciò significa che puoi modificare l'ora di accesso o il timestamp di modifica.
Nel caso in cui desideri modificare solo il tempo di accesso, usa l'opzione della riga di comando -a.
touch -a [filename]
Allo stesso modo, se il requisito è modificare solo l'ora di modifica, utilizzare l'opzione della riga di comando -m.
touch -m [filename]
3. Come fare touch usa i tempi di accesso/modifica del file esistente
Se lo desideri, puoi anche forzare il comando touch a copiare i timestamp di accesso e modifica da un file di riferimento. Ad esempio, supponiamo di voler modificare i timestamp per il file 'apl.c'. Ecco i timestamp correnti per questo file:
E questo è il file che vuoi toccare per usare come riferimento:
Ora, affinché il tocco utilizzi i timestamp di 'apl' per 'apl.c', dovrai utilizzare l'opzione della riga di comando -r nel modo seguente:
touch apl.c -r apl
Lo screenshot sopra mostra che i timestamp di modifica e accesso per 'apl.c' ora sono gli stessi di 'apl.'
4. Come creare un nuovo file utilizzando il tocco
Anche la creazione di un nuovo file è molto semplice. Infatti accade automaticamente se il nome del file passato come argomento al comando touch non esiste. Ad esempio, per creare un file chiamato 'nuovofile', tutto ciò che devi fare è eseguire il seguente comando touch:
touch newfile
5. Come forzare il tocco per non creare nuovi file
Nel caso in cui ci sia un requisito rigoroso che il comando touch non debba creare nuovi file, puoi utilizzare l'opzione -c.
touch -c [filename]
Lo screenshot seguente mostra che poiché 'newfile12' non esisteva e abbiamo usato l'opzione della riga di comando -c, il comando touch non ha creato il file.
6. Come funziona il tocco in caso di link simbolici
Per impostazione predefinita, se si passa un nome file di collegamento simbolico al comando touch, la modifica dei timestamp di accesso e modifica sarà per il file originale (quello a cui si riferisce il collegamento simbolico). Tuttavia, lo strumento offre anche un'opzione (-h) che ti consente di ignorare questo comportamento.
Ecco come la pagina man spiega l'opzione -h:
-h, --no-dereference
affect each symbolic link instead of any referenced file (useful
only on systems that can change the timestamps of a symlink)
Quindi, quando vuoi modificare la modifica e i timestamp di accesso per il collegamento simbolico (e non per il file originale), usa il comando touch nel modo seguente:
touch -h [sym link file name]
Conclusione
Come sarai d'accordo, il tocco non è un comando difficile da comprendere e utilizzare. Gli esempi/opzioni che abbiamo discusso in questo tutorial dovrebbero essere sufficienti per iniziare con lo strumento. Mentre i neofiti si troveranno principalmente a utilizzare l'utilità per creare nuovi file, gli utenti più esperti ci giocano anche per molti altri scopi. Per ulteriori informazioni sul comando touch, vai alla sua pagina man.