«touch» es un comando básico de Linux para crear archivos vacíos o cambiar las marcas de tiempo de los archivos (última fecha u hora de acceso o modificación del archivo).
El comando touch es muy útil en el uso diario, es útil para probar transferencias de archivos creando archivos vacíos para probar, tener la capacidad de crear archivos ficticios para hacer lo que queramos con ellos puede ayudar en cualquier momento por ejemplo a probar cualquier comando de Linux que interactúe directamente con un archivo, para comandos como wipe, srm, o shred no se quiere probar con archivos reales.
Cuando usamos el comando touch con el nombre de un fichero existente, touch no creará un nuevo fichero pero actualizará las marcas de tiempo del fichero. Por otro lado cambiar las marcas de tiempo sería útil si queremos evitar que alguien sepa que hemos accedido a un archivo falsificando la fecha y hora real en que se accedió.
Los archivos de Linux tienen 3 marcas de tiempo: atime, mtime y ctime.
atime: atime contiene información sobre cuándo se leyó el contenido del archivo con herramientas o comandos para mostrar el contenido del archivo como less, nano, vi, vim, cat, grep, head, etc. La marca de tiempo atime cambia y se actualiza cada vez que se visualiza el archivo.
mtime: mtime muestra la última modificación del contenido de un archivo, incluyendo su nombre, pero no su propiedad o permisos, sólo el archivo en sí.
ctime: al igual que mtime ctime también muestra cuándo se modificó un archivo, pero también se actualiza cuando la propiedad, el grupo o los permisos de acceso a un archivo fueron cambiados. Podemos editar el atime y el mtime pero no podemos editar el ctime, el tiempo se actualiza cuando se editan los permisos de un archivo o cuando los archivos son realmente leídos o modificados
Edición de la marca de tiempo atime:
Antes de ver las marcas de tiempo de un archivo vamos a crearlas escribiendo:
$ ls
LinuxHintEmptyFile
Donde:
touch = crea un archivo vacío llamado LinuxHintEmptyFIle
ls = lista los archivos en el directorio
Ahora para ver las marcas de tiempo del archivo en el tipo de terminal
El comando stat muestra los permisos de acceso, el último acceso (atime), la última modificación (mtime) y el último cambio (ctime).
Dado que la fecha y la hora de creación del archivo son las mismas, vamos a cambiar los permisos del archivo para ver la diferencia en la salida de stat:
Donde:
Chmod -777: elimina todos los permisos del archivo LinuxHintEmptyFile.
stat: muestra las marcas de tiempo del archivo
En la imagen anterior podemos ver que el ctime (Cambio) fue actualizado.
Ahora, vamos a editar el archivo atime a 1/2/99, escribe:
Si también quieres cambiar la fecha de acceso escribe:
Edición de la marca de tiempo mtime:
La sintaxis para editar mtime es la misma, para cambiar el ctime a 1989.02.01 tipo:
Ahora puedes ver que se actualizó la fecha de modificación, para actualizar también su tiempo de forma similar con atime tipo:
Ahora vamos a crear un segundo archivo y usaremos el comando touch para copiar las marcas de tiempo de un archivo en el segundo:
Tenemos un fichero accedido,modificado y cambiado el 2019-05-15 00:02:14, para copiar las marcas de tiempo del fichero tipo LinuxHintEmptyFile:
Como veis ahora ambos ficheros comparten las mismas marcas de tiempo.
Si queremos cambiar todas las marcas de tiempo a la hora actual sólo tenemos que escribir «touch»:
Como veis la segunda estadística muestra el atime, mtime y ctime actualizados tras el comando touch.
Espero que este tutorial haya sido útil como introducción al comando touch, para más información sobre este comando escriba «man touch», en caso de tener alguna consulta contáctenos abriendo un ticket de soporte en LinuxHint Support. Continúa siguiendo LinuxHint para más consejos y actualizaciones sobre Linux.