Cada archivo en Linux está asociado con marcas de tiempo, que especifican la hora del último acceso, la hora de la última modificación y la hora del último cambio.
Cada vez que creamos un nuevo archivo, o modificamos un archivo existente o sus atributos, estas marcas de tiempo se actualizarán automáticamente.
El comando táctil se usa para cambiar estas marcas de tiempo (hora de acceso, hora de modificación y hora de cambio de un archivo).
1. Crear un archivo vacío usando el toque
Puede crear un archivo vacío usando el comando táctil. El siguiente ejemplo creará un nuevo archivo de cero bytes llamado tgs.txt.
$ touch tgs.txt
También puede usar la opción -c para evitar la creación de nuevos archivos. Si usa la opción -c, y si un archivo no existe, tocar no creará el archivo.
$ touch -c a.txt
Comandos como el comando ls y el comando find usan esta información de marca de tiempo para listar y encontrar archivos.
También puede crear más de 1 archivo desde un solo comando táctil. El siguiente ejemplo creará 4 archivos llamados a, b, c y d.
$ touch a b c d
2. Cambiar el tiempo de acceso del archivo usando -a
Podemos cambiar el tiempo de acceso de un archivo usando la opción -a. De forma predeterminada, tomará la hora actual del sistema y actualizará el campo atime.
Antes de ejecutar el comando táctil:
$ stat tgs.txt File: `tgs.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 394283 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/lakshmanan) Gid: ( 1000/lakshmanan) Access: 2012-10-18 23:58:21.663514407 +0530 Modify: 2012-10-18 23:58:21.663514407 +0530 Change: 2012-10-18 23:58:21.663514407 +0530
$ touch -a tgs.txt
Después del comando táctil anterior (tenga en cuenta que el tiempo de acceso cambia):
$ stat tgs.txt File: `tgs.txt' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 801h/2049d Inode: 394283 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/lakshmanan) Gid: ( 1000/lakshmanan) Access: 2012-10-19 00:08:23.559514525 +0530 Modify: 2012-10-18 23:58:21.663514407 +0530 Change: 2012-10-19 00:08:23.559514525 +0530
3. Cambie el tiempo de modificación del archivo usando -m
Puede cambiar la hora de modificación de un archivo usando la opción -m.
$ touch -m *.o
El método anterior se puede usar para cambiar el mtime de todos los archivos obj, cuando se usa la utilidad make.
NOTA:No es posible cambiar el ctime usando el comando táctil
4. Establecer explícitamente el tiempo de acceso y modificación usando -t y -d
En lugar de tomar la marca de tiempo actual, puede especificar explícitamente la hora usando las opciones -t y -d.
El formato para especificar -t es [[CC]YY]MMDDhhmm[.SS]
$ touch -t [[CC]YY]MMDDhhmm[.SS]
A continuación se explica el formato anterior:
- CC:especifica los dos primeros dígitos del año
- YY:especifica los dos últimos dígitos del año. Si el valor de YY está entre 70 y 99, se supone que el valor de los dígitos CC es 19. Si el valor de YY está entre 00 y 37, se supone que el valor de los dígitos CC es 20. Es no es posible establecer la fecha más allá del 18 de enero de 2038.
- MM:especifica el mes
- DD:especifica la fecha
- hh:especifica la hora
- mm:especifica los minutos
- SS:especifica los segundos
Por ejemplo:
$ touch -a -m -t 203801181205.09 tgs.txt
Verifique el cambio anterior usando el comando stat:
$ stat tgs.txt File: `tgs.txt' Size: 3 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 394283 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/lakshmanan) Gid: ( 1000/lakshmanan) Access: 2038-01-18 12:05:09.000000000 +0530 Modify: 2038-01-18 12:05:09.000000000 +0530 Change: 2012-10-19 00:40:58.763514502 +0530
También puedes usar una cadena para cambiar la hora
Otro ejemplo:
$ touch -d "2012-10-19 12:12:12.000000000 +0530" tgs.txt
Para los desarrolladores, el comando táctil será realmente útil cuando trabaje con Makefiles
5. Copie la marca de tiempo de otro archivo usando -r
También puede tomar un archivo como referencia y actualizar la hora de otros archivos, de modo que ambos archivos mantengan la misma hora.
El siguiente ejemplo de comando táctil actualizará la marca de tiempo del archivo a.txt con la marca de tiempo del archivo tgs.txt.
$ touch a.txt -r tgs.txt