touch
Crea un archivo vacío o actualiza la fecha de uno que ya existe.
Crea el archivo si no existe, vacío, y si ya existe solo le actualiza la fecha sin tocar lo que tiene adentro. Lo usas para dejar un archivo marcador que indique que algo ya pasó, para preparar un archivo antes de abrirlo en nano y para ponerle a un archivo la fecha que necesitas.
touch [opciones] ARCHIVO...Despiece
6 ejemplosCrear un archivo vacío
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | touch | Comando | El comando que crea el archivo o le cambia la fecha. |
| 2 | notas.txt | Argumento | El archivo que quieres crear en la carpeta donde estás. |
Aparece notas.txt con cero bytes. Ojo: si el archivo ya existía, no borra nada, solo le actualiza la fecha de modificación.
Crear varios archivos de una vez
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | touch | Comando | El comando que crea el archivo o le cambia la fecha. |
| 2 | a.txt | Argumento | El primer archivo a crear. |
| 3 | b.txt | Argumento | El segundo archivo a crear. |
| 4 | c.txt | Argumento | El tercer archivo a crear. |
Los tres archivos se crean vacíos con un solo comando. Es la forma rápida de dejar lista la estructura de un proyecto.
Actualizar la fecha sin arriesgarte a crear nada
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | touch | Comando | El comando que crea el archivo o le cambia la fecha. |
| 2 | -c | Opción | No crear el archivo si no existe. |
| 3 | notas.txt | Argumento | El archivo cuya fecha se va a tocar. |
Si el archivo existe, solo se actualiza su fecha. Si no existe, no se crea y tampoco avisa: termina con código 0 igual, así que no sirve para preguntar si algo existe.
Fijar una fecha concreta
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | touch | Comando | El comando que crea el archivo o le cambia la fecha. |
| 2 | -d | Opción | Toma la fecha del texto que sigue en vez de usar la de ahora. |
| 3 | "2025-01-15 10:30" | Valor | La fecha y hora que quieres que tenga el archivo, entre comillas. |
| 4 | notas.txt | Argumento | El archivo al que le pones esa fecha. |
notas.txt queda con esa fecha de modificación en lugar de la de hoy. Sirve para ordenar respaldos o para dejar archivos con la fecha real de cuando se crearon.
Copiar las fechas de otro archivo
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | touch | Comando | El comando que crea el archivo o le cambia la fecha. |
| 2 | -r | Opción | Toma las fechas del archivo de referencia. |
| 3 | original.txt | Argumento | El archivo del que se copian las fechas. |
| 4 | copia.txt | Argumento | El archivo que recibe esas fechas. |
copia.txt queda con la misma fecha de modificación y de acceso que original.txt. Es lo mismo que hace cp -p con las fechas al copiar un archivo.
Cambiar solo la fecha de modificación
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | touch | Comando | El comando que crea el archivo o le cambia la fecha. |
| 2 | -m | Opción | Solo la fecha de modificación, no la de último acceso. |
| 3 | notas.txt | Argumento | El archivo que quieres retocar. |
Se actualiza la fecha que ves con ls -l y se deja intacta la de último acceso. Con -a pasa al revés: solo cambia esa última. Sin -a ni -m, touch cambia las dos.
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -c--no-create | No crea el archivo si no existe. Solo actualiza la fecha de lo que ya está, sin fallar. |
| -a | Cambia solo la fecha de último acceso (atime), no la de modificación. |
| -m | Cambia solo la fecha de modificación (mtime), que es la que ves con ls -l. |
| -d--date | Usa la fecha que le indiques en texto, por ejemplo -d "2025-01-15 10:30". Acepta cosas como yesterday o "2 days ago". |
| -t | Usa una fecha con el formato [[CC]YY]MMDDhhmm, por ejemplo -t 202501151030. Es más difícil de leer que -d. |
| -r--reference | Copia las fechas de otro archivo en vez de usar la hora actual. |
| -h--no-dereference | Cambia la fecha del enlace simbólico en sí, no la del archivo al que apunta. |
Fallas comunes
| Falla | Remedio |
|---|---|
| Crear el archivo con touch esperando que se borre lo que tenía. | touch nunca borra contenido: solo crea el archivo si no existe y, si ya existe, le cambia la fecha. Para vaciar un archivo usa : > archivo.txt y para borrarlo, rm archivo.txt. |
| Usar touch para crear una carpeta. | touch solo crea archivos, y vacíos. Para una carpeta, con todo lo que lleva dentro de una vez: mkdir -p ruta/carpeta. |
| Pensar que touch -c sirve para preguntar si un archivo existe. | touch -c solo evita que el archivo se cree: si no existe, no avisa y termina con código 0. Para preguntar por un archivo usa [ -f notas.txt ] && echo existe, o simplemente ls notas.txt. |
| Escribir -d con la fecha en español y obtener un error. | GNU touch entiende fechas en inglés o numéricas: touch -d "2025-01-15 10:30" o touch -d yesterday. Con "hace 2 dias" responde invalid date format; en inglés sería touch -d "2 days ago". |
Preguntas frecuentes
- ¿Para qué sirve touch si cat y nano también crean archivos?
- nano abre el editor para escribir dentro y cat solo muestra lo que ya hay. touch crea el archivo vacío al instante y además sirve para tocarle la fecha a uno existente sin abrirlo. En un script es la forma más barata de dejar un archivo marcador.
- ¿Cómo creo un archivo con una fecha específica?
- Con touch -d "2025-01-15 10:30" notas.txt. También acepta expresiones relativas como yesterday o "2 days ago", siempre en inglés. La opción -t usa el formato 202501151030, que es más difícil de leer y se presta a errores.
- ¿Cómo copio la fecha de un archivo a otro?
- Con touch -r original.txt copia.txt: copia.txt queda con las mismas fechas de acceso y modificación que original.txt. Es lo que hace cp -p con las fechas, pero sin copiar el contenido.
- ¿Cuál es la diferencia entre touch -a y touch -m?
- -m cambia la fecha de modificación, la que aparece en ls -l y que se actualiza al escribir el archivo. -a cambia la de último acceso, que se actualiza al leerlo (en Linux, por la opción relatime, solo de vez en cuando). Sin ninguna de las dos opciones, touch cambia las dos.
- ¿Cómo compruebo si un archivo existe sin crear nada?
- Con el corchete de prueba: [ -f notas.txt ] && echo existe. Devuelve código 0 si el archivo existe y 1 si no, así que sirve dentro de un if o de un &&. touch -c no sirve para eso, porque nunca falla.