Introduzione
Il touch
la funzione principale del comando è quella di modificare un timestamp. Comunemente, l'utilità viene utilizzata per la creazione di file, sebbene questa non sia la sua funzione principale. Il programma del terminale può modificare la modifica e il tempo di accesso per un determinato file. Il touch
comando crea un file solo se il file non esiste già.
Questo tutorial spiega come utilizzare il touch
comando con opzioni di base e avanzate.
Prerequisiti
- Un sistema che esegue Linux.
- Accesso alla riga di comando/terminale.
- Comandi di base del terminale, come
ls
.
tocca Sintassi dei comandi
La sintassi fondamentale per il touch
il comando è:
touch <options> <file or directory name>
L'utilità touch funziona senza alcuna opzione o con più opzioni per query avanzate. Alcune opzioni hanno un formato lungo e corto. Se un'opzione richiede informazioni aggiuntive, i dati sono obbligatori sia per i moduli lunghi che per quelli brevi.
tocca Opzioni comando
Di seguito è riportata una tabella di riferimento per tutti i touch
disponibili opzioni di comando:
Opzione | Descrizione |
---|---|
-a | Modifica il tempo di accesso. |
-c --no-create | Evita di creare un nuovo file. |
-d=<string> --date=<string> | Modifica un timestamp utilizzando una stringa di data. |
-f | Nessun effetto. Nei vecchi BSD l'opzione forza le modifiche. |
-h --no-dereference | Modifica il timestamp di un collegamento simbolico. |
-m | Modifica l'ora di modifica. |
-r=<file> --reference=<file> | Modifica un timestamp nel timestamp del file di riferimento. |
-t <stamp> | Modifica un timestamp, dove il timbro è il formato data/ora. |
--help | Apre il menu della guida. |
-v --version | Stampa la versione del programma. |
Esempi di tocco Linux
Quando si lavora con i file in Linux, ci sono tre timestamp di cui tenere conto:
1. Tempo di accesso o tempo cambia quando un comando legge il contenuto del file, come grep o cat. Il ls -lu
il comando visualizza l'ora per i file.
2. Cambia ora o tempo cambia quando la proprietà di un file cambia, ad esempio rinominando i file, modificando l'autorizzazione del file o spostando il file. Il ls -lc
comando mostra il ctime per i file.
3. Tempo di modifica o mtime cambia quando il contenuto di un file cambia. Il ls -l
il comando mostra l'mtime per i file.
Gli esempi seguenti sono tutti eseguiti dal terminale e mostrano come utilizzare il touch
di Linux comando con varie opzioni e quale output aspettarsi.
Crea file
Il modo più semplice per utilizzare il touch
comando è senza opzioni:
touch <filename>
Se un file non esiste, tocca crea il file. Ad esempio, per creare un file chiamato test , esegui:
touch test
Elenca il contenuto della directory per vedere il file usando il comando ls.
Se il file esiste già, tocca cambia il timestamp con l'ora corrente.
Il contenuto del file e le autorizzazioni rimangono invariati.
Crea più file
Il touch
comando può anche creare più file. Per farlo, elenca i nomi dei file separati da spazi:
touch <filename> <filename>
Ad esempio:
touch test1 test2
Un modo utile per applicare touch
consiste nel creare grandi batch di file. Per farlo, aggiungi le parentesi graffe e indica il primo e l'ultimo elemento oltre al nome del file:
touch <filename{<start>..<finish>}>
Ad esempio, per creare dieci file con numerazione aggiunta, eseguire:
touch test{1..10}
Il comando funziona anche con le lettere. Ad esempio:
touch test_{a..j}
Importante :Il comando non può combinare numeri e lettere.
Imposta timestamp specifico
Usa il touch
comando per impostare un timestamp specifico per un file esistente, ad esempio:
touch -t <timestamp> <filename>
Il formato del timestamp segue uno schema specifico:
[[CC]YY]MMDDhhmm[.ss]
CC
- le prime due cifre per un annoYY
- le ultime due cifre per un annoMM
- il meseDD
- il giornohh
- l'oramm
- il verbaless
- i secondi
Le cifre tra parentesi quadre sono facoltative. Quando si utilizza il formato anno a due cifre, impostare YY
a qualsiasi numero compreso tra 0 e 68 presuppone automaticamente CC
è 20, mentre 69-99 presuppone CC
è 19.
Ad esempio, per modificare il timestamp di un file chiamato test a mezzanotte del 1 gennaio 1999 , esegui:
touch -t 199901010000 test
Usa il --full-time
opzione con ls
per vedere i dettagli del timestamp.
Imposta il timestamp del file utilizzando la stringa di data
Il touch
il comando usa il -d
opzione per impostare un timestamp utilizzando una stringa di data. La sintassi è:
touch -d <string> <filename>
La stringa della data è un formato orario flessibile e accetta molte diverse forme testuali leggibili dall'uomo. Alcuni esempi includono:
- Date del calendario, ad esempio
19 August 2020
. - Ora del giorno, ad esempio
9:27pm
o8:02am
. - Giorni della settimana, ad esempio
Sunday
,Monday
, ecc. - Tempo relativo, ad esempio
5 years ago
,yesterday
,next tuesday
, ecc.
Ad esempio, modifica il timestamp utilizzando il -d
opzione per tomorrow
:
touch -d tomorrow test
Per vedere un elenco completo delle possibili opzioni di input di stringhe, visita la documentazione GNU sui formati di input della data.
Modifica l'ora di accesso a quella attuale
Usa il -a
tag per modificare il tempo di accesso di un file. La sintassi generale è:
touch -a <filename>
Ad esempio, per mostrare il tempo di accesso di un file, esegui:
ls -lu
Quindi, modifica il tempo di accesso per il file denominato test con:
touch -a test
Infine, visualizza l'ora modificata eseguendo:
ls -lu
L'ora di accesso cambia nel timestamp corrente.
Modifica esplicitamente l'ora di accesso
Modifica il tempo di accesso a un timestamp specifico combinando il -a
e -t
opzioni:
touch -at <timestamp> <filename>
Verificare il tempo di accesso ai file prima di modificarlo:
ls -lu
Modificare il tempo di accesso per il file test a mezzanotte 1 gennaio 1999 , aggiungendo il timestamp:
touch -at 9901010000 test
Infine, controlla il tempo di accesso dopo la modifica:
ls -lu
Dopo aver eseguito il comando, il tempo di accesso cambia al valore impostato con il -t
tag.
Modifica l'ora di modifica in quella attuale
Il touch
comando offre un'opzione per modificare l'ora di modifica. La sintassi di base è:
touch -m <filename>
Ad esempio, controlla l'mtime del file prima di modificare il timestamp:
ls -l
Quindi, cambia l'ora di modifica per il file di prova:
touch -m test
Infine, controlla il tempo dopo la modifica:
ls -l
Il -m
l'opzione cambia l'ora di modifica al timestamp corrente per impostazione predefinita.
Modifica esplicitamente l'ora di modifica
Combina il -m
opzione con -t
per indicare esplicitamente il timestamp di modifica. La sintassi generale è:
touch -mt <timestamp> <filename>
Controlla l'ora del file prima di cambiarlo:
ls -l
Modifica l'ora di modifica alla mezzanotte del 1 gennaio 1999 , eseguendo:
touch -mt 9901010000 test
Infine, ricontrolla l'ora di modifica:
ls -l
Aggiunta del -t
l'opzione aggiorna l'ora di modifica a un valore specifico.
Modifica sia la modifica che il tempo di accesso
L'utility touch permette di modificare la modifica e il tempo di accesso con un solo comando. Per farlo, esegui:
touch -am <filename>
Prima di modificare atime e mtime, verificarlo con:
ls -lu
ls -l
Quindi, cambia entrambe le volte per il test file al timestamp corrente:
touch -am test
Controllare l'ora e l'ora dopo la modifica:
ls -lu
ls -l
Le opzioni combinate cambiano entrambe le volte in una volta sola all'ora corrente. Combina ulteriormente con il -t
tag per indicare un timestamp esplicito.
Evita di creare un nuovo file
Per impostazione predefinita, il tocco genera un nuovo file se non esiste. Tuttavia, alcune situazioni richiedono l'override di questa funzionalità. Aggiungi il -c
opzione per evitare di creare un nuovo file quando si richiama il touch
comando:
touch -c <filename>
Ad esempio, prova a eseguire touch
con il -c
opzione con un file inesistente:
touch -c new_test
Elenca il contenuto della directory per confermare che il file non è presente:
ls -l
Se invece il file esiste, il touch
comando esegue le operazioni fornite sul file esistente come al solito.
Imposta il timestamp utilizzando un file di riferimento
Il touch
Il comando offre un'utile opzione per modificare il timestamp di un file in base al timestamp di un altro file.
Per eseguire tale modifica, eseguire:
touch -r <reference file> <file>
Ad esempio, crea un nuovo file e fai riferimento al timestamp di un test esistente file:
touch -r test new_test
Controlla il timestamp di entrambi i file con:
ls -l
Il nuovo_test eredita il timestamp dal test file.
Imposta il timestamp utilizzando un collegamento simbolico
Il touch
Il comando consente di modificare il timestamp per i collegamenti simbolici senza modificare il timestamp del file di riferimento. Usa il -h
opzione per modificare l'ora di un collegamento simbolico:
touch -h <filename>
Ad esempio, controlla l'ora di un collegamento simbolico esistente prima di qualsiasi modifica:
ls -l
Modificare il timestamp per il collegamento simbolico all'ora corrente:
touch -h link
Infine, ricontrolla il timestamp per confermare la modifica:
ls -l
Senza il -h
opzione, il touch
comando cambia solo il test timestamp del file.
In questo caso, il timestamp del collegamento simbolico rimane invariato.