Il comando Touch viene utilizzato per creare file vuoti e modifica anche i timestamp dei file esistenti su Unix e Linux System. Modificare i timestamp qui significa aggiornare l'ora di accesso e modifica di file e directory.
Diamo un'occhiata alla sintassi e alle opzioni utilizzate nel comando touch,
Sintassi :# tocca {opzioni} {file}
Opzioni utilizzate nel comando touch,
In questo articolo analizzeremo 9 utili esempi di comandi touch in Linux,
Esempio:1 crea un file vuoto usando il tocco
Per creare un file vuoto utilizzando il comando touch su sistemi Linux, digita touch seguito dal nome del file, l'esempio è mostrato di seguito,
[[email protected] ~]# touch devops.txt [[email protected] ~]# ls -l devops.txt -rw-r--r--. 1 root root 0 Mar 29 22:39 devops.txt [[email protected] ~]#
Esempio:2 creare file vuoti in blocco utilizzando il tocco
Potrebbero esserci degli scenari in cui dobbiamo creare molti file vuoti per alcuni test, questo può essere facilmente ottenuto usando il comando touch,
[[email protected] ~]# touch sysadm-{1..20}.txt
Nell'esempio sopra abbiamo creato 20 file vuoti con il nome sysadm-1.txt in sysadm-20.txt, puoi cambiare il nome e i numeri in base alle tue esigenze.
Esempio:3 Modifica/Aggiorna il tempo di accesso di un file e di una directory
Supponiamo di voler modificare il tempo di accesso di un file chiamato "devops.txt ", per farlo usa '-a ' opzione nel comando touch seguito dal nome del file, l'esempio è mostrato di seguito,
[[email protected] ~]# touch -a devops.txt [[email protected] ~]#
Ora verifica se il tempo di accesso di un file è stato aggiornato o meno usando il comando 'stat'
[[email protected] ~]# stat devops.txt File: ‘devops.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 67324178 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2018-03-29 23:03:10.902000000 -0400 Modify: 2018-03-29 22:39:29.365000000 -0400 Change: 2018-03-29 23:03:10.902000000 -0400 Birth: - [[email protected] ~]#
Modifica il tempo di accesso di una directory ,
Supponiamo di avere una cartella 'nfsshare' in /mnt, cambiamo il tempo di accesso di questa cartella usando il comando seguente,
[[email protected] ~]# touch -a /mnt/nfsshare/ [[email protected] ~]#
[[email protected] ~]# stat /mnt/nfsshare/ File: ‘/mnt/nfsshare/’ Size: 6 Blocks: 0 IO Block: 4096 directory Device: fd00h/64768d Inode: 2258 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:mnt_t:s0 Access: 2018-03-29 23:34:38.095000000 -0400 Modify: 2018-03-03 10:42:45.194000000 -0500 Change: 2018-03-29 23:34:38.095000000 -0400 Birth: - [[email protected] ~]#
Esempio:4 Modifica dell'ora di accesso senza creare un nuovo file
Ci possono essere alcune situazioni in cui si desidera modificare il tempo di accesso di un file se esiste ed evitare di creare il file. Usando '-c ' opzione nel comando touch, possiamo modificare il tempo di accesso di un file se esiste e non creeremo un file, se non esiste.
[[email protected] ~]# touch -c sysadm-20.txt [[email protected] ~]# touch -c winadm-20.txt [[email protected] ~]# ls -l winadm-20.txt ls: cannot access winadm-20.txt: No such file or directory [[email protected] ~]#
Esempio:5 Modifica Ora di modifica di un file e di una directory
Usando '-m ' opzione nel comando touch, possiamo cambiare l'ora di modifica di un file e di una directory,
Cambiamo il tempo di modifica di un file chiamato “devops.txt”,
[[email protected] ~]# touch -m devops.txt [[email protected] ~]#
Ora verifica se l'ora di modifica è stata modificata o meno utilizzando il comando stat,
[[email protected] ~]# stat devops.txt File: ‘devops.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 67324178 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2018-03-29 23:03:10.902000000 -0400 Modify: 2018-03-29 23:59:49.106000000 -0400 Change: 2018-03-29 23:59:49.106000000 -0400 Birth: - [[email protected] ~]#
Allo stesso modo, possiamo cambiare il tempo di modifica di una directory,
[[email protected] ~]# touch -m /mnt/nfsshare/ [[email protected] ~]#
Esempio:6 Modifica dell'ora di accesso e modifica in una volta sola
Usa "-am ” opzione nel comando touch per modificare l'accesso e la modifica insieme o in una volta sola, l'esempio è mostrato di seguito,
[[email protected] ~]# touch -am devops.txt [[email protected] ~]#
Verifica incrociata l'ora di accesso e modifica utilizzando stat,
[[email protected] ~]# stat devops.txt File: ‘devops.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 67324178 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2018-03-30 00:06:20.145000000 -0400 Modify: 2018-03-30 00:06:20.145000000 -0400 Change: 2018-03-30 00:06:20.145000000 -0400 Birth: - [[email protected] ~]#
Esempio:7 impostare l'ora di accesso e modifica su una data e un'ora specifiche
Ogni volta che modifichiamo l'accesso e l'ora di modifica di un file e una directory utilizzando il comando touch, viene impostata l'ora corrente come ora di accesso e modifica di quel file o directory,
Supponiamo di voler impostare una data e un'ora specifiche come ora di accesso e modifica di un file, ciò può essere ottenuto utilizzando l'opzione "-c" e "-t" nel comando touch,
La data e l'ora possono essere specificate nel formato:{CCYY}MMDDhhmm.ss
Dove:
- CC – Prime due cifre di un anno
- YY:le seconde due cifre di un anno
- MM – Mese dell'anno (01-12)
- DD – Giorno del mese (01-31)
- hh – Ora del giorno (00-23)
- mm – Minuti dell'ora (00-59)
Impostiamo l'ora di accesso e modifica del file devops.txt per data e ora future (anno 2025, 10° mese, 19° giorno del mese, 18° ora e 20° minuto)
[[email protected] ~]# touch -c -t 202510191820 devops.txt
Usa il comando stat per visualizzare l'accesso all'aggiornamento e l'ora di modifica,
Impostare l'ora di accesso e modifica in base alla stringa di data, utilizzare l'opzione '-d' nel comando touch e quindi specificare la stringa di data seguita dal nome del file, l'esempio è mostrato di seguito,
[[email protected] ~]# touch -c -d "2010-02-07 20:15:12.000000000 +0530" sysadm-29.txt [[email protected] ~]#
Verifica lo stato usando il comando stat,
[[email protected] ~]# stat sysadm-20.txt File: ‘sysadm-20.txt’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 67324189 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2010-02-07 20:15:12.000000000 +0530 Modify: 2010-02-07 20:15:12.000000000 +0530 Change: 2018-03-30 10:23:31.584000000 +0530 Birth: - [[email protected] ~]#
Nota: Nei comandi precedenti, se non specifichiamo "-c", il comando touch creerà un nuovo file nel caso non esista sul sistema e imposterà i timestamp qualunque sia menzionato nel comando.
Esempio:8 imposta i timestamp su un file utilizzando un file di riferimento (-r)
Nel comando touch possiamo utilizzare un file di riferimento per impostare i timestamp di file o directory. Supponiamo di voler impostare gli stessi timestamp del file "sysadm-20.txt" sul file "devops.txt". Questo può essere ottenuto facilmente usando l'opzione '-r' in contatto.
Sintassi: # touch -r {file-riferimento} file-effettivo
[[email protected] ~]# touch -r sysadm-20.txt devops.txt [[email protected] ~]#
Esempio:9 Modifica l'ora di accesso e modifica sul file di collegamento simbolico
Per impostazione predefinita, ogni volta che proviamo a modificare i timestamp di un file di collegamento simbolico utilizzando il comando touch, verranno modificati solo i timestamp del file originale, nel caso in cui desideri modificare i timestamp di un file di collegamento simbolico, questo può essere ottenuto utilizzando '-h' opzione nel comando touch,
Sintassi: # touch -h {file di collegamento simbolico}
[[email protected] opt]# ls -l /root/linuxgeeks.txt lrwxrwxrwx. 1 root root 15 Mar 30 10:56 /root/linuxgeeks.txt -> linuxadmins.txt [[email protected] ~]# touch -t 203010191820 -h linuxgeeks.txt [[email protected] ~]# ls -l linuxgeeks.txt lrwxrwxrwx. 1 root root 15 Oct 19 2030 linuxgeeks.txt -> linuxadmins.txt [[email protected] ~]#
Questo è tutto da questo tutorial, spero che questi esempi ti aiutino a capire il comando touch. Condividi i tuoi preziosi feedback e commenti.
Ulteriori informazioni su: 17 utili esempi di comandi rsync (sincronizzazione remota) in Linux