Comandos LinuxExplicados en español
/
Ficha16 / 104
Categoría
Archivos
Ejemplos
6
Ver también
mkdir · ls · nano · rm

touch

touch (tocar un archivo para actualizar su fecha)

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.

Sintaxistouch [opciones] ARCHIVO...
§ 1

Despiece

6 ejemplos
Crear un archivo vacío

Crear un archivo vacío

2 piezas
Lámina01 / 06
Comandotouch notas.txt
Piezas2
Escala1:1
N.ºPiezaTipoQué hace
1touchComandoEl comando que crea el archivo o le cambia la fecha.
2notas.txtArgumentoEl archivo que quieres crear en la carpeta donde estás.
Resultado

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

4 piezas
Lámina02 / 06
Comandotouch a.txt b.txt c.txt
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1touchComandoEl comando que crea el archivo o le cambia la fecha.
2a.txtArgumentoEl primer archivo a crear.
3b.txtArgumentoEl segundo archivo a crear.
4c.txtArgumentoEl tercer archivo a crear.
Resultado

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

3 piezas
Lámina03 / 06
Comandotouch -c notas.txt
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1touchComandoEl comando que crea el archivo o le cambia la fecha.
2-cOpciónNo crear el archivo si no existe.
3notas.txtArgumentoEl archivo cuya fecha se va a tocar.
Resultado

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

4 piezas
Lámina04 / 06
Comandotouch -d "2025-01-15 10:30" notas.txt
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1touchComandoEl comando que crea el archivo o le cambia la fecha.
2-dOpciónToma la fecha del texto que sigue en vez de usar la de ahora.
3"2025-01-15 10:30"ValorLa fecha y hora que quieres que tenga el archivo, entre comillas.
4notas.txtArgumentoEl archivo al que le pones esa fecha.
Resultado

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

4 piezas
Lámina05 / 06
Comandotouch -r original.txt copia.txt
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1touchComandoEl comando que crea el archivo o le cambia la fecha.
2-rOpciónToma las fechas del archivo de referencia.
3original.txtArgumentoEl archivo del que se copian las fechas.
4copia.txtArgumentoEl archivo que recibe esas fechas.
Resultado

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

3 piezas
Lámina06 / 06
Comandotouch -m notas.txt
Piezas3
Escala1:1
N.ºPiezaTipoQué hace
1touchComandoEl comando que crea el archivo o le cambia la fecha.
2-mOpciónSolo la fecha de modificación, no la de último acceso.
3notas.txtArgumentoEl archivo que quieres retocar.
Resultado

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.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-c--no-createNo crea el archivo si no existe. Solo actualiza la fecha de lo que ya está, sin fallar.
-aCambia solo la fecha de último acceso (atime), no la de modificación.
-mCambia solo la fecha de modificación (mtime), que es la que ves con ls -l.
-d--dateUsa la fecha que le indiques en texto, por ejemplo -d "2025-01-15 10:30". Acepta cosas como yesterday o "2 days ago".
-tUsa una fecha con el formato [[CC]YY]MMDDhhmm, por ejemplo -t 202501151030. Es más difícil de leer que -d.
-r--referenceCopia las fechas de otro archivo en vez de usar la hora actual.
-h--no-dereferenceCambia la fecha del enlace simbólico en sí, no la del archivo al que apunta.
§ 3

Fallas comunes

FallaRemedio
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".
§ 4

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.
§ 5

Ver también