Comando táctil en Linux
El comando táctil en Linux se usa para cambiar las marcas de tiempo de los archivos; sin embargo, uno de los usos más comunes del comando táctil incluye la creación de un nuevo archivo vacío.
Con el comando táctil, puede cambiar el acceso, modificar y cambiar la hora de los archivos y carpetas en Linux. Puede actualizar las marcas de tiempo o modificarlas a una fecha pasada.
La sintaxis del comando táctil es bastante simple:
touch [option] file
¿Qué son las marcas de tiempo de archivo en Linux, de nuevo?
He escrito sobre las marcas de tiempo en Linux en detalle en un artículo anterior. Recomendaría leerlo para una mejor y más clara comprensión. En aras de un recuerdo rápido, enumeraré las marcas de tiempo aquí:
- hora de acceso:la última vez que se accedió a un archivo
- hora de modificación:la última vez que se modificó un archivo
- hora de cambio:última vez que se cambiaron los metadatos del archivo (permiso del archivo, propiedad, etc.)
Puede ver las marcas de tiempo de un archivo usando el comando stat de la siguiente manera:
stat abhi.txt
File: abhi.txt
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11940163 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-09-02 14:12:24.476483367 +0530
Modify: 2018-09-02 14:12:24.476483367 +0530
Change: 2018-09-02 14:12:24.476483367 +0530
Birth: -
El comando Stat incluso muestra el número de inodo del archivo.
9 ejemplos prácticos de touch command en Linux
Ahora veamos cómo usar el comando táctil con algunos ejemplos simples pero útiles.
1. Crea un archivo vacío
Como mencioné anteriormente, este es el uso más común del comando táctil. Todo lo que tiene que hacer es tocar con el nombre del archivo.
touch <filename>
Esto creará un archivo vacío si el archivo no existe.
touch empty_file
ls -l empty_file
-rw-r--r-- 1 abhishek abhishek 0 Sep 2 14:37 empty_file
Pero, ¿y si el archivo ya existe? En ese caso, actualizará las tres marcas de tiempo del archivo a la hora actual.
2. Crear múltiples archivos vacíos
También puede usar el toque para crear más de un archivo vacío. Simplemente proporcione los nombres de los archivos que desea crear.
touch <file1> <file2> <file3>
Si cree que es agotador escribir todos los nombres de archivo, puede generar automáticamente nombres de archivo de esta manera:
touch new-file-{1..10}.txt
Esto creará nuevo-archivo-1.txt, nuevo-archivo-2.txt hasta nuevo-archivo-10.txt.
3. Evite crear un archivo con toque si no existe
Touch actualizará las marcas de tiempo del archivo de entrada si existe y creará un archivo vacío si el archivo de entrada no existe.
Pero, ¿qué sucede si no desea tocar para crear un nuevo archivo vacío? Desea que actualice las marcas de tiempo del archivo, pero si el archivo no existe, no debe crearse.
Puede usar el comando táctil con la opción -c en tales casos:
touch -c <filename>
Recuerda :Toque creará un nuevo archivo vacío si no existe; de lo contrario, modificará las marcas de tiempo del archivo existente. Puede detener la creación de un nuevo archivo con la opción -c.
4. Cambiar todas las marcas de tiempo de un archivo
Si usa el toque en un archivo existente, cambiará el acceso, modificará y cambiará la hora de ese archivo.
Por ejemplo, tengo este archivo llamado sherlock.txt con las siguientes marcas de tiempo:
stat sherlock.txt
File: sherlock.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-08-25 09:44:56.092937000 +0530
Modify: 2018-08-09 09:41:05.028309000 +0530
Change: 2018-08-25 09:44:56.096937182 +0530
Si uso el toque en este comando, todas las marcas de tiempo se cambiarán a las marcas de tiempo actuales.
touch sherlock.txt
stat sherlock.txt
File: sherlock.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-09-02 15:22:47.017037942 +0530
Modify: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:22:47.017037942 +0530
Birth: -
Nota:no debe molestarse con ctime (hora de cambio). Es una propiedad del sistema y no puede/no debe ser controlada por el usuario. Su enfoque debe estar en el acceso y modificar el tiempo.
5. Actualizar solo el tiempo de acceso del archivo
Es posible que no siempre desee cambiar todas las marcas de tiempo de un archivo. Si solo desea cambiar el tiempo de acceso de un archivo, puede usar la opción -a con toque.
touch -a sherlock.txt
stat sherlock.txt
File: sherlock.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-09-02 15:29:08.796926093 +0530
Modify: 2018-09-02 15:22:47.017037942 +0530
Change: 2018-09-02 15:29:08.796926093 +0530
Birth: -
6. Actualizar solo modificar la hora del archivo
Si solo desea actualizar la hora de modificación de un archivo a la marca de tiempo actual, use la opción -m del comando táctil.
touch -m sherlock.txt
stat sherlock.txt
File: sherlock.txt
Size: 356 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928277 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-09-02 15:29:08.796926093 +0530
Modify: 2018-09-02 15:31:25.770866881 +0530
Change: 2018-09-02 15:31:25.770866881 +0530
Birth: -
7. Usar marcas de tiempo de otro archivo
También puede usar las marcas de tiempo de otro archivo como referencia con la opción -r de la siguiente manera:
touch -r <source_file> <target_file>
Esto establecerá el acceso y la hora de modificación del archivo de destino igual que el acceso y la hora de modificación del archivo de origen.
8. Establecer hora específica de acceso y modificación
Es posible que haya notado que en casi todos los casos (excepto el del archivo de referencia), las marcas de tiempo se cambian a la marca de tiempo actual.
Pero no estás obligado a eso. Touch le permite configurar el tiempo de acceso y modificación a una fecha pasada o futura. Puede usar la opción -t y una marca de tiempo en el siguiente formato:
[[CC]AA]MMDDhhmm[.ss]
- CC:los dos primeros dígitos de un año
- YY:segundos dos dígitos de un año
- MM:mes del año (01-12)
- DD:día del mes (01-31)
- hh:hora del día (00-23)
- mm – Minuto de la hora (00-59)
- ss:segundos (00-59)
En el caso anterior, CC es opcional. De hecho, CCYY también es opcional, tomará el año actual en ese caso. Del mismo modo, los segundos también son opcionales, el valor predeterminado es 00.
Déjame mostrarte un ejemplo cambiando la marca de tiempo a 12021301, es decir, mes 12, segundo día, hora 13 y primer minuto del año actual:
touch -t 12021301 agatha.txt
stat agatha.txt
File: agatha.txt
Size: 457 Blocks: 8 IO Block: 4096 regular file
Device: 10305h/66309d Inode: 11928279 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2018-12-02 13:01:00.000000000 +0530
Modify: 2018-12-02 13:01:00.000000000 +0530
Change: 2018-09-02 15:59:47.588680901 +0530
Birth: -
Si intenta ingresar una fecha no válida, verá un error. También notará que el tiempo de cambio está usando la marca de tiempo actual, no lo mismo que acceder y modificar. Es porque es propiedad del sistema.
9. Cambiar la marca de tiempo de un enlace simbólico
También puede usar el comando táctil con enlaces simbólicos. Solo tiene que usar la opción -h al tratar con enlaces simbólicos. El resto permanece igual que los archivos normales.
touch -h <symbolic_link>
Espero que encuentre útiles estos ejemplos de comandos táctiles en Linux. Si tiene alguna pregunta o sugerencia, hágamelo saber.