Manipular marcas de tiempo de archivos con touch
El comando touch no solo permite crear archivos, sino también actualizar sus marcas de tiempo. Esto es útil para pruebas o cuando se necesita sincronizar las marcas de tiempo entre archivos.
Actualizar todas las marcas de tiempo
Para actualizar todas las marcas de tiempo (acceso, modificación y cambio) a la hora actual:
touch testfile.txt
Verificar las marcas de tiempo:
stat testfile.txt
Salida:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:45:10.000000000 +0000
Modify: 2023-05-15 14:45:10.000000000 +0000
Change: 2023-05-15 14:45:10.000000000 +0000
Birth: -
Actualizar solo el tiempo de acceso
Para actualizar solo el tiempo de acceso:
touch -a testfile.txt
Verificar las marcas de tiempo:
stat testfile.txt
Salida:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:46:15.000000000 +0000
Modify: 2023-05-15 14:45:10.000000000 +0000
Change: 2023-05-15 14:46:15.000000000 +0000
Birth: -
Tenga en cuenta que el tiempo de cambio (ctime) también se actualiza porque los metadatos del archivo han cambiado.
Actualizar solo el tiempo de modificación
Para actualizar solo el tiempo de modificación:
touch -m testfile.txt
Verificar las marcas de tiempo:
stat testfile.txt
Salida:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:46:15.000000000 +0000
Modify: 2023-05-15 14:47:20.000000000 +0000
Change: 2023-05-15 14:47:20.000000000 +0000
Birth: -
Nuevamente, el tiempo de cambio también se actualiza.
Establecer marcas de tiempo específicas
Puede establecer una marca de tiempo específica utilizando la opción -d con touch:
touch -d "2023-01-01 12:00:00" testfile.txt
Verificar las marcas de tiempo:
stat testfile.txt
Salida:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-01-01 12:00:00.000000000 +0000
Modify: 2023-01-01 12:00:00.000000000 +0000
Change: 2023-05-15 14:48:30.000000000 +0000
Birth: -
Esto establece tanto el tiempo de acceso como el de modificación en el 1 de enero de 2023, a las 12:00 PM. El tiempo de cambio todavía se actualiza a la hora actual.
Crear un nuevo archivo con marcas de tiempo de un archivo existente
También puede utilizar la opción -r para hacer referencia a las marcas de tiempo de otro archivo:
## Create a new file
touch newfile.txt
## Set its timestamps based on testfile.txt
touch -r testfile.txt newfile.txt
Verificar las marcas de tiempo del nuevo archivo:
stat newfile.txt
Salida:
File: newfile.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 2101100 Links: 1
Access: (0644/-rw-r--r--) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-01-01 12:00:00.000000000 +0000
Modify: 2023-01-01 12:00:00.000000000 +0000
Change: 2023-05-15 14:49:45.000000000 +0000
Birth: -
Los tiempos de acceso y modificación de newfile.txt ahora coinciden con los de testfile.txt.