GNU/Linux >> Linux Esercitazione >  >> Linux

Come modificare un file senza modificarne i timestamp in Linux

Come forse saprai, i timestamp "ora di accesso" e "ora di modifica" di un file verranno cambiati nell'ora corrente dopo che il file è stato modificato o modificato. A volte, potresti voler preservare i vecchi timestamp per qualsiasi motivo anche dopo aver modificato o modificato i file. Questa breve guida spiega come modificare un file senza cambiarne i timestamp in Linux.

Se non sai molto sui timestamp dei file Linux, fai riferimento alla seguente guida.

  • I timestamp dei file Linux spiegati con esempi

Modifica un file senza cambiarne i timestamp in Linux

I timestamp di un file possono essere aggiornati utilizzando touch comando. I timestamp vengono aggiornati anche quando aggiungiamo manualmente contenuti in un file o rimuoviamo dati da esso. Se vuoi modificare il contenuto dei file senza cambiarne i timestamp, non esiste un modo diretto per farlo. Ma è possibile!

Possiamo usare uno dei touch opzione del comando -r (riferimento) per preservare i timestamp del file dopo averlo modificato o modificato. Il -r l'opzione viene utilizzata per impostare i timestamp di un file sui valori di timestamp di un altro.

Ho un file di testo chiamato ostechnix.txt . Diamo un'occhiata ai timestamp di questo file con stat comando:

$ stat ostechnix.txt 
  File: ostechnix.txt
  Size: 38        	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 4351679     Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1000/      sk)   Gid: ( 1000/      sk)
Access: 2020-11-12 19:47:55.992788870 +0530
Modify: 2020-11-12 19:47:55.992788870 +0530
Change: 2020-11-12 19:47:55.992788870 +0530
 Birth: -

Come già detto, se cambiamo i contenuti o i metadati di questo file, cambieranno anche i timestamp.

Ora crea un nuovo file vuoto, ad esempio ostechnix.timestamp , con gli stessi timestamp di ostechnix.txt file utilizzando touch comando:

$ touch -r ostechnix.txt ostechnix.timestamp

Controlla i timestamp del nuovo file:

$ stat ostechnix.timestamp 
  File: ostechnix.timestamp
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d	Inode: 4328645     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/      sk)   Gid: ( 1000/      sk)
Access: 2020-11-12 19:47:55.992788870 +0530
Modify: 2020-11-12 19:47:55.992788870 +0530
Change: 2020-11-12 19:48:48.934235300 +0530
 Birth: -

Vedere? atime di entrambi i file e mtime i timestamp sono gli stessi!

Ora apporta le modifiche nel file principale, ad esempio ostechnix.txt . Come hai intuito, i timestamp del file principale cambieranno.

Infine, copia i timestamp del nuovo file, ad esempio ostechnix.timestamp al file principale:

$ touch -r ostechnix.timestamp ostechnix.txt

Ora il file principale ha i suoi vecchi timestamp prima di essere modificato/modificato.

Tieni presente che non possiamo preservare i timestamp dell'ora di modifica (ctime). Si aggiornerà sempre all'ora corrente.

TL;DR

Crea un nuovo file con gli stessi timestamp del file principale con touch comando, esegui le modifiche nel file principale e imposta i timestamp del nuovo file sul file principale con -r opzione.

Spero che questo aiuti.


Linux
  1. Come gestire le capacità dei file Linux

  2. Come trovare un file in Linux

  3. Come creare uno scambio in Linux

  4. Linux:come rigenerare 70-persistent-net.rules senza riavviare?

  5. Come modificare il file Excel (xlsx) utilizzando la shell Linux

File host Linux:come modificarlo e utilizzarlo?

Come rendere eseguibile un file in Linux

Come verificare il checksum su Linux

Come rinominare uno o più file in Linux

Come collegare simbolicamente un file in Linux

Come aprire l'immagine ISO senza masterizzare su disco in Linux