A veces, mientras trabaja en la línea de comandos en Linux, es posible que desees crear un nuevo archivo. O bien, puede haber ocasiones en las que el requisito sea cambiar las marcas de tiempo de un archivo. Bueno, existe una utilidad que puedes usar en ambos escenarios. La herramienta en cuestión es touch, y en este tutorial, comprenderemos su funcionalidad básica a través de ejemplos fáciles de entender.

Ten en cuenta que todos los ejemplos que vamos a utilizar aquí han sido probados en una máquina Ubuntu 16.04.

El comando touch se usa principalmente para cambiar las marcas de tiempo del archivo, pero si el archivo (cuyo nombre se pasa como argumento) no existe, entonces la herramienta lo crea.

A continuación está la sintaxis genérica del comando:

 

touch [Opción]… ARCHIVO…

Y así es como la página man explica este comando:

DESCRIPTION
       Update  the  access  and modification times of each FILE to the current
       time. A FILE argument that does not exist is created empty, unless -c  or  -h
       is supplied. A  FILE  argument  string of - is handled specially and causes touch to
       change the times of the file associated with standard output.

Los siguientes ejemplos de preguntas y respuestas te darán una mejor idea de cómo funciona la herramienta.

1. Cómo cambiar el tiempo de acceso/modificación usando el comando touch

Esto es simple y bastante directo. Tomemos un archivo existente como ejemplo. La siguiente captura de pantalla muestra los tiempos de acceso y modificación para un archivo llamado ‘apl.c.

 

 

 

 

 

A continuación, mostramos cómo puedes usar el comando touch para cambiar los tiempos de acceso y modificación del archivo:

touch apl.c

La siguiente captura de pantalla confirma el cambio en estas marcas de tiempo.

Change file timestamp with touch command

 

2. Cómo cambiar solo el tiempo de acceso o modificación

Por defecto, el comando touch cambia los tiempos de acceso y modificación del archivo de entrada. Sin embargo, si lo deseas, puedes limitar este comportamiento a cualquiera de estas marcas de tiempo. Esto significa que puedes cambiar el tiempo de acceso o la marca de tiempo de modificación.

En caso de que quieras cambiar solo el tiempo de acceso, usa la opción de línea de comando -a.

 

touch -a [filename]

De forma similar, si el requisito es solo cambiar el tiempo de modificación, usa la opción de línea de comando -m.

touch -m [filename]

3. Cómo hacer que touch use los tiempos de acceso/modificación del archivo existente

Si lo deseas, también puedes forzar el comando touch para copiar el acceso y modificar las marcas de tiempo de un archivo de referencia. Por ejemplo, supongamos que queremos cambiar las marcas de tiempo para el archivo ‘apl.c‘. Estas son las marcas de tiempo actuales para este archivo:

 

 

 

 

 

 

Y este es el archivo que deseas usar como referencia:

 

 

 

 

 

Ahora, para que touch modifique las marcas de tiempo de ‘apl‘ para ‘apl.c‘, necesitarás usar la opción de línea de comando -r de la siguiente manera:

touch apl.c -r apl

 

 

 

 

 

 

La captura de pantalla anterior muestra que las marcas de tiempo de modificación y acceso para ‘apl.c‘ ahora son las mismas que para ‘apl‘.

4. Cómo crear un nuevo archivo usando touch

Crear un nuevo archivo también es muy fácil. De hecho, sucede automáticamente si el nombre del archivo que pasa como argumento al comando táctil no existe. Por ejemplo, para crear un archivo llamado ‘newfile‘, todo lo que tienes que hacer es ejecutar el siguiente comando táctil:

 

touch newfile

5. Cómo forzar touch para no crear ningún archivo nuevo

En caso de que haya un requisito estricto de que el comando touch no debe crear ningún archivo nuevo, entonces puedes usar la opción -c.

touch -c [nombre de archivo]

La siguiente captura de pantalla muestra que dado que ‘newfile12‘ no existía, y usamos la opción de línea de comando -c, el comando touch no creó el archivo.

 

 

6. Cómo funciona touch en caso de enlaces simbólicos

De forma predeterminada, si pasas un nombre de archivo de enlace simbólico al comando touch, el cambio en las marcas de tiempo de acceso y modificación será para el archivo original (al que hace referencia el enlace simbólico). Sin embargo, la herramienta también ofrece una opción (-h) que te permite anular este comportamiento.

Así es como la página man explica la opción -h:

-h, --no-dereference
              affect each symbolic link instead of any referenced file (useful
              only on systems that can change the timestamps of a symlink)

Entonces, cuando desees cambiar la modificación y acceder a las marcas de tiempo para el enlace simbólico (y no el archivo original), usa el comando touch de la siguiente manera:

touch -h [sym link file name]

Fuente

(Visitada 1 veces, 2 visitas hoy )