touch recursivo

Hablemos de GNU/Linux…

heckert_gnu_invertida

El comando “touch” nos resulta útil para cambiar la fecha y hora de un archivo determinado.

 

Ejemplo 1.

Cambiar la fecha y hora del archivo “documento.txt” a la fecha 26/11/216 hora 15:30

touch -t 201611261530 documento.txt

Si el archivo “documento.txt” no existe, touch lo creará vacío.

 

Ejemplo 2.

Cambiar la fecha y hora del archivo “documento2.txt” a la fecha y hora actuales.

touch documento2.txt

 

Ejemplo 3.

Cambiar la fecha y hora de todos los archivos y subcarpetas contenidos en nuestra carpeta:

touch -t 201611261530 *.*

El problema es que no actúa de manera recursiva.

Es decir: cambia la fecha y hora a todos los archivos y subcarpetas de nuestra carpeta, pero no entra en las subcarpetas para cambiar la fecha y hora de los archivos y subcarpetas contenidas en las mismas.

Es más: touch no dispone de ninguna opción para hacerlo recursivo.

Pero podemos utilizar el truco que se expone en el ejemplo 4 y ejemplo 5.

Ejemplo 4.

Cambiar la fecha y hora de todos los archivos y carpetas, así como del contenido de las mismas (recursivamente) con la fecha actual:

find . -exec touch {} +

Ejemplo 5.

Cambiar la fecha y hora de todos los archivos y carpetas, así como del contenido de las mismas (recursivamente) con la fecha 22/07/2006 y la hora 13:59:49

find . -exec touch -mt 200607221359.49 {} +

 

 

Más información:

https://en.wikipedia.org/wiki/Touch_(Unix)

http://stackoverflow.com/questions/19090731/recursively-touch-files-with-file

Anuncios