GNU/Linux >> Linux Esercitazione >  >> Linux

9 Esempi utili di Touch Command in Linux

Comando touch in Linux

Il comando touch in Linux viene utilizzato per modificare i timestamp dei file, tuttavia uno degli usi più comuni del comando touch include la creazione di un nuovo file vuoto.

Con il comando touch, puoi modificare l'accesso, modificare e cambiare l'ora di file e cartelle in Linux. Puoi aggiornare i timestamp o modificarli in una data passata.

La sintassi per il comando touch è abbastanza semplice:

touch [option] file

Cosa sono i timestamp dei file in Linux, di nuovo?

Ho scritto dettagliatamente sui timestamp in Linux in un articolo precedente. Consiglio di leggerlo per una migliore e più chiara comprensione. Per motivi di un rapido richiamo, elencherò i timestamp qui:

  • ora di accesso:l'ultima volta in cui è stato effettuato l'accesso a un file
  • ora di modifica:l'ultima volta in cui un file è stato modificato
  • ora di modifica:l'ultima volta in cui sono stati modificati i metadati del file (autorizzazione del file, proprietà, ecc.)

Puoi vedere i timestamp di un file usando il comando stat nel modo seguente:

stat abhi.txt 
  File: abhi.txt
  Size: 10        	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11940163    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-09-02 14:12:24.476483367 +0530
Modify: 2018-09-02 14:12:24.476483367 +0530
Change: 2018-09-02 14:12:24.476483367 +0530
 Birth: -

Il comando Stat mostra anche il numero di inode del file.

9 Esempi pratici di comandi touch in Linux

Vediamo ora come utilizzare il comando touch con alcuni semplici ma utili esempi.

1. Crea un  file

vuoto

Come accennato in precedenza, questo è l'uso più comune del comando touch. Tutto quello che devi fare è usare il tocco con il nome del file.

touch <filename>

Questo creerà un file vuoto se il file non esiste.

touch empty_file
ls -l empty_file 
-rw-r--r-- 1 abhishek abhishek 0 Sep  2 14:37 empty_file

Ma cosa succede se il file esiste già? In tal caso, aggiornerà tutti e tre i timestamp del file all'ora corrente.

2. Crea più file vuoti

Puoi usare il tocco anche per creare più di un file vuoto. Fornisci solo i nomi dei file che desideri creare.

touch <file1> <file2> <file3>

Se pensi che sia stancante scrivere tutti i nomi di file, puoi generare automaticamente i nomi di file in questo modo:

touch new-file-{1..10}.txt

Questo creerà nuovo-file-1.txt, nuovo-file-2.txt fino a nuovo-file-10.txt.

3. Evita di creare un file con il tocco se non esiste

Touch aggiornerà i timestamp del file di input se esiste e creerà un file vuoto se il file di input non esiste.

Ma cosa succede se non vuoi toccare per creare un nuovo file vuoto? Vuoi che aggiorni i timestamp del file ma se il file non esiste, non dovrebbe essere creato.

Puoi usare il comando touch con l'opzione -c in questi casi:

touch -c <filename>
Ricorda :Touch creerà un nuovo file vuoto se non esiste, altrimenti modificherà i timestamp del file esistente. Puoi interrompere la creazione di un nuovo file con l'opzione -c.

4. Modifica tutti i timestamp di un file

Se usi il tocco su un file esistente, cambierà l'accesso, modificherà e cambierà l'ora di quel file.

Ad esempio, ho questo file chiamato sherlock.txt con i seguenti timestamp:

stat sherlock.txt 
  File: sherlock.txt
  Size: 356       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928277    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-08-25 09:44:56.092937000 +0530
Modify: 2018-08-09 09:41:05.028309000 +0530
Change: 2018-08-25 09:44:56.096937182 +0530

Se utilizzo il tocco su questo comando, tutti i timestamp verranno modificati con i timestamp correnti.

touch sherlock.txt 
stat sherlock.txt 
  File: sherlock.txt
  Size: 356       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928277    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-09-02 15:22:47.017037942 +0530
Modify: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:22:47.017037942 +0530
 Birth: -

Nota:non dovresti preoccuparti di ctime (cambia ora). È una proprietà di sistema e non può/non deve essere controllata dall'utente. Il tuo obiettivo dovrebbe essere l'accesso e la modifica del tempo.

5. Aggiorna solo l'ora di accesso al file

Potresti non voler sempre cambiare tutti i timestamp di un file. Se desideri semplicemente modificare il tempo di accesso di un file, puoi utilizzare l'opzione -a con il tocco.

touch -a sherlock.txt 
stat sherlock.txt 
  File: sherlock.txt
  Size: 356       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928277    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-09-02 15:29:08.796926093 +0530
Modify: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:29:08.796926093 +0530
 Birth: -

6. Aggiorna modifica solo l'ora del file

Se vuoi semplicemente aggiornare l'ora di modifica di un file al timestamp corrente, usa l'opzione -m del comando touch.

touch -m sherlock.txt 
stat sherlock.txt 
  File: sherlock.txt
  Size: 356       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928277    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-09-02 15:29:08.796926093 +0530
Modify: 2018-09-02 15:31:25.770866881 +0530
Change: 2018-09-02 15:31:25.770866881 +0530
 Birth: -

7. Usa timestamp di un altro file

Puoi anche utilizzare i timestamp di un altro file come riferimento con l'opzione -r nel modo seguente:

touch -r <source_file> <target_file>

Questo imposterà l'ora di accesso e modifica del file di destinazione uguale all'ora di accesso e modifica del file di origine.

8. Imposta un orario di accesso e modifica specifico

Potresti aver notato che in quasi tutti i casi (tranne quello del file di riferimento), i timestamp vengono modificati nel timestamp corrente.

Ma non sei vincolato a questo. Touch consente di impostare l'accesso e l'ora di modifica su una data passata o futura. Puoi usare l'opzione -t e un timestamp nel seguente formato:

[[CC]AA]MMGGhhmm[.ss]

  • 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)
  • ss – Secondi (00-59)

Nel caso di cui sopra, il CC è facoltativo. In effetti, anche CCYY è facoltativo, in tal caso ci vorrà l'anno in corso. Allo stesso modo, anche i secondi sono facoltativi, il valore predefinito è 00.

Lascia che ti mostri un esempio modificando il timestamp in 12021301, ovvero 12° mese, secondo giorno, 13° ora e primo minuto dell'anno in corso:

touch -t 12021301 agatha.txt 
stat agatha.txt 
  File: agatha.txt
  Size: 457       	Blocks: 8          IO Block: 4096   regular file
Device: 10305h/66309d	Inode: 11928279    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/abhishek)   Gid: ( 1000/abhishek)
Access: 2018-12-02 13:01:00.000000000 +0530
Modify: 2018-12-02 13:01:00.000000000 +0530
Change: 2018-09-02 15:59:47.588680901 +0530
 Birth: -

Se provi a inserire una data non valida, vedrai un errore. Noterai anche che il tempo di modifica utilizza il timestamp corrente, non lo stesso di accesso e modifica. È perché è una proprietà di sistema.

Puoi anche utilizzare il comando touch con collegamenti simbolici. Devi solo usare l'opzione -h mentre gestisci i collegamenti simbolici. Il resto rimane lo stesso dei file normali.

touch -h <symbolic_link>

Spero che questi esempi di comandi touch in Linux siano utili. Se hai domande o suggerimenti, fammi sapere.


Linux
  1. 12 utili esempi di comandi Wget in Linux

  2. Comando mv in Linux:7 esempi essenziali

  3. 9 esempi utili del comando Split in Linux

  4. ln Esempi di comandi in Linux

  5. toccare Esempi di comandi in Linux

Comando Linux WC con esempi

Esempi di comandi touch di Linux

15 esempi utili di comando touch nel sistema Linux

9 Esempi utili di Touch Command in Linux

Esempi di comandi di Linux cat

Esempi di comandi gzip di Linux