Introduzione
Il comando touch ci consente di aggiornare i timestamp su file e directory esistenti, nonché di creare nuovi file vuoti.
In questa guida, ti mostreremo come utilizzare il comando touch attraverso esempi pratici e spiegazioni dettagliate delle opzioni di comando più comuni.
Timestamp dei file Linux
Prima di andare su come utilizzare il comando touch, iniziamo esaminando i timestamp dei file in Linux.
Un file in Linux ha tre timestamp:
- atime (tempo di accesso) - L'ultima volta che è stato effettuato l'accesso / apertura al file da un comando o un'applicazione come cat , vim o grep .
- mtime (modifica ora) - L'ultima volta che è stato modificato il contenuto del file.
- ctime (modifica ora) - L'ultima volta che l'attributo o il contenuto del file è stato modificato. L'attributo include autorizzazioni per file, proprietà del file o posizione del file.
Per visualizzare lo stato del file, inclusi i timestamp, utilizzare il comando stat
:
stat file_name
La creazione di un nuovo file richiede autorizzazioni di scrittura nella directory principale. Altrimenti, riceverai un errore di autorizzazione negata.
Come utilizzare il comando touch
Nella sua forma più semplice se usato senza alcuna opzione, se il nome del file specificato come argomento non esiste touch creerà un nuovo file.
Se il file esiste già, touch cambierà l'ultimo file e i tempi di modifica all'ora corrente.
Ad esempio, se il file file1
non esiste il seguente comando lo creerà altrimenti, cambierà i suoi timestamp:
touch file1
Per creare o modificare più file contemporaneamente, specificare i nomi dei file come argomenti:
touch file1 file2 file3
Se non si desidera che il comando touch crei nuovi file, utilizzare l'opzione -c
( --no-create
).
Ad esempio, se il file file1
esiste il seguente comando cambierà i timestamp del file altrimenti, non farà nulla:
touch -c file1
Cambiando solo i tempi di accesso o modifica
Per impostazione predefinita, se non viene utilizzata alcuna opzione, touch aggiornerà l'ultimo file e i tempi di modifica all'ora corrente. Utilizzando le opzioni -a
e -m
, è possibile modificare solo uno di questi timestamp.
Cambia solo il tempo di accesso
Utilizzare l'opzione -a
per modificare solo il tempo di accesso al file:
touch -a file1
Cambia solo il tempo di modifica
Utilizzare l'opzione -m
per modificare l'ora di modifica del file:
touch -m file1
Impostazione di timestamp specifici
Il comando touch ci consente inoltre di aggiornare o creare un file con un'ora specifica diversa dall'ora corrente.
Utilizzare l'opzione -d
( --date=
) per specificare una stringa di data e usarla al posto dell'ora corrente.
Ad esempio, per modificare sia l'ultimo accesso sia i tempi di modifica del file file1
al 1 ° giugno 2018 11:02, utilizzare il comando seguente:
touch -d '1 June 2018 11:02' file1
La stringa della data deve essere racchiusa tra virgolette singole.
È inoltre possibile fornire una stringa di data e ora parziale al comando touch. Fornendo solo la data, cambia automaticamente l'anno in quello corrente:
touch -d '12 June' file1
Utilizzare l'opzione -t
per specificare un timestamp e usarlo al posto dell'ora corrente. L'argomento timestamp deve essere nel seguente formato:
use [[CC]YY]MMDDhhmm[.ss]
Ad esempio, il comando seguente imposterà gli ultimi tempi di accesso e modifica del file file1
al 1 ° giugno 11:02 dell'anno in corso.
touch -t 12061102 file1
Utilizzando il timestamp di un altro file
L'opzione -r
( --reference=
) ci consente di specificare un file di riferimento e di utilizzare i suoi timestamp anziché l'ora corrente.
Ad esempio, il comando seguente indica a touch di utilizzare i tempi di file1
per file2
:
touch -r file1 file2
Modifica della data/ora del collegamento simbolico
Per impostazione predefinita, se si utilizza un comando touch su un collegamento simbolico, i timestamp del file di riferimento verranno modificati.
Utilizzare -h
( --no-dereference
) per modificare il timestamp del collegamento simbolico.
Ad esempio, per modificare i timestamp del collegamento simbolico symlink1
dovrai usare:
touch -h symlink1
Conclusione
Ormai dovresti avere una buona conoscenza di come usare il comando touch di Linux.