Cómo editar un archivo sin cambiar sus marcas de tiempo en Linux

Como sabrá, las marcas de tiempo de “hora de acceso” y “hora de modificación” de un archivo se cambiarán a la hora actual después de editar o modificar el archivo. A veces, es posible que desee conservar las marcas de tiempo antiguas por cualquier motivo, incluso después de editar o modificar los archivos. Esta breve guía explica cómo editar un archivo sin cambiar sus marcas de tiempo en Linux.

Si no sabe mucho sobre las marcas de tiempo de los archivos de Linux, consulte la siguiente guía.

  • Marcas de tiempo de archivos de Linux explicadas con ejemplos

Edite un archivo sin cambiar sus marcas de tiempo en Linux

Las marcas de tiempo de un archivo se pueden actualizar usando touch mando. Las marcas de tiempo también se actualizan cuando agregamos contenidos manualmente en un archivo o eliminamos datos de él. Si desea cambiar el contenido de los archivos sin cambiar sus marcas de tiempo, no hay una forma directa de hacerlo. ¡Pero es posible!

Podemos usar uno de los touch opción de comando -r (referencia) para conservar las marcas de tiempo del archivo después de editarlo o modificarlo. los -r La opción se utiliza para establecer las marcas de tiempo de un archivo en los valores de marca de tiempo de otro.

Tengo un archivo de texto llamado ostechnix.txt . Veamos las marcas de tiempo de este archivo con stat mando:

$ 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: -

Como ya se dijo, si cambiamos el contenido o los metadatos de este archivo, las marcas de tiempo también cambiarán.

Ahora cree un nuevo archivo vacío, para example ostechnix.timestampcon las mismas marcas de tiempo que ostechnix.txt archivo usando touch mando:

$ touch -r ostechnix.txt ostechnix.timestamp

Compruebe las marcas de tiempo del nuevo archivo:

$ 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: -
Edite un archivo sin cambiar su marca de tiempo en Linux

¿Ver? Ambos archivos’ un momento y mtime ¡Las marcas de tiempo son las mismas!

Ahora haga los cambios en el archivo principal, es decir ostechnix.txt. Como habrás adivinado, las marcas de tiempo del archivo principal cambiarán.

Finalmente, copie las marcas de tiempo del nuevo archivo, es decir ostechnix.timestamp al archivo principal:

$ touch -r ostechnix.timestamp ostechnix.txt

Ahora el archivo principal tiene sus marcas de tiempo antiguas antes de que se editara/modificara.

Tenga en cuenta que no podemos conservar las marcas de tiempo de tiempo de cambio (ctime). Siempre se actualizará a la hora actual.

TL;RD

Cree un nuevo archivo con las mismas marcas de tiempo que el archivo principal con touch comando, haga los cambios en el archivo principal y establezca las marcas de tiempo del nuevo archivo en el archivo principal con -r opción.

Espero que esto ayude.

Related Posts