¿Cómo configuro el archivo mtime en formato de época?

11

Sé cómo obtener el mtime de un archivo en formato de época:

stat --format=%Y <file>

Pero no he podido averiguar cómo configurar el tiempo m de un archivo en formato de época. La página de comando man touch (1) parece aceptar solo un valor de "marca de tiempo" (formato fijo más o menos que usa meses, días, horas, minutos, etc.) o una "cadena de fecha legible por humanos en formato mayormente libre".

¿Hay otra utilidad que debería estar buscando?

Gracias.

eil
fuente
1
Por favor, siempre incluya su sistema operativo. Las soluciones a menudo dependen del sistema operativo utilizado. ¿Estás utilizando Unix, Linux, BSD, OSX, algo más? ¿Cual version?
terdon

Respuestas:

10

Al menos en el mundo GNU:

touch --date=@1403970787 file

Me gusta con date.

Hauke ​​Laging
fuente
1

Con perl:

$ perl -e 'utime (stat($_))[8], time(), $_ for @ARGV' file1 file2 ...

Esto cambiará mtime de todos los archivos en @ARGV. (stat($_))[8]es el momento del archivo.

utime puede recibir una lista de archivos, si no le importa cambiar el tiempo, puede intentar:

 $ perl -e '$t = time(); utime $t, $t, @ARGV' file1 file2 ...

Nota

utimedepende de la biblioteca de tiempo de ejecución de C y del sistema de archivos que esté utilizando. ver más en perldoc -f utimey perldoc perlport.

Cuonglm
fuente
0

Con el touchcomando de GNU coreutils (es decir, en Linux y Cygwin no integrados), consulte el manual completo (generalmente disponible localmente en formato de información) para obtener la documentación de los formatos de entrada de fecha . Las fechas de época se indican con el prefijo @:

touch -d @1234567890 foo

Esto también funciona con BusyBox (al menos en algunos sistemas, puede depender de las opciones de compilación).

Con * BSD, no creo que pueda hacer esto touchsolo, pero puede llamar datepara formatear el tiempo de época en un formato que touchacepte.

touch -d "$(date -r 1234567890 +%Y%m%d%H%M.%S)" foo

POSIX carece notoriamente de formas de manipular fechas de época. Puedes usar perl .

Gilles 'SO- deja de ser malvado'
fuente