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.
- Las marcas de tiempo de los archivos de Linux se explican con ejemplos
Editar un archivo sin cambiar sus marcas de tiempo en Linux
Las marcas de tiempo de un archivo se pueden actualizar usando touch
dominio. 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 del comando -r
(referencia) para conservar las marcas de tiempo del archivo después de editarlo o modificarlo. El -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
. Echemos un vistazo a las marcas de tiempo de este archivo 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: -
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, por ejemplo ostechnix.timestamp
, con las mismas marcas de tiempo que ostechnix.txt
archivo usando touch
comando:
$ touch -r ostechnix.txt ostechnix.timestamp
Verifique 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: -
¿Ver? a la vez de ambos archivos 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 fuera editado/modificado.
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.