Buscando una utilidad para cambiar por lotes la fecha de creación/modificación de múltiples archivos en fecha y hora ascendente (Windows XP/7/Mac/Linux)

Buscando una utilidad para cambiar por lotes la fecha de creación/modificación de múltiples archivos en fecha y hora ascendente (Windows XP/7/Mac/Linux)

Estoy buscando una utilidad que modifique por lotes/en masa las marcas de fecha de los archivos (fecha de modificación y/o fecha de creación) con una segunda precisión, pero lo haga en orden incremental ascendente, por ejemplo

File1 2012-04-18 10:21:01
File2 2012-04-18 10:21:02
File3 2012-04-18 10:21:03

Quiero hacer esto porque quiero obligar a Flickr a ordenar las fotos cargadas en una secuencia determinada.

Me gustaría esto para Windows o Mac. También tengo Ubuntu, así que podría considerarlo como una opción secundaria.

Respuesta1

Este

  • funciona en Linux/Mac,
  • no utiliza retrasos artificiales para crear una diferencia de tiempo, y
  • mantiene la fecha de modificación cercana a la original (a menudo encuentro estas fechas útiles en otros contextos).

 

#!/bin/sh
REF=${1}
i=1
while [ $# -gt 1 ]; do
    if ! [ "${2}" = "${REF}" ]; then
        touch -h -r "${REF}" -d "+${i} seconds" "${2}"
        i=$((i+1))
    fi
    shift
done

Sólo especifica los archivosen el orden temporal deseadoy utilizará la marca de tiempo del primer archivo como base y agregará un segundo incrementalmente a cada uno de los siguientes argumentos.

Si el archivo de referencia se proporciona varias veces, conservará su hora original (esto es sólo para poder hacer, por ejemplo, "retime 0001.jpg *" sin cambiar la marca de tiempo de referencia). Si se proporciona otro archivo varias veces, obtendrá la última marca de tiempo lógica.

Sin -h, touchse desreferenciarán los enlaces simbólicos, lo que probablemente no sea deseado en este caso (si dice "¿y ahora qué simbólico?", entonces no se preocupe).

Respuesta2

Buena pregunta, aunque tal vez Flickr debería tener alguna opción para ordenar los archivos cargados.

Para Windows sugeriría

Cambiador de archivos masivo de Nirsoft

Para Linux, se podría escribir fácilmente un script bash y utilizar eltocarcomando para cambiar varios archivos.

El comando táctil también está disponible en Mac OS X, alguien ha escrito untarea de automatizaciónpara hacer esto pero nuevamente esto podría hacerse en la terminal

FILES=./*
for f in $FILES
do
  echo "Processing $f file..."
  touch $f 
done

Este script bash tocará cada archivo en orden ascendente. Podrías agregar un "suspensión" al script si quisieras que cada archivo tuviera un segundo valor diferente.

user@computer:/tmp/data$ ls -l

total 9028
-rw-r--r-- 1 user user  428800 Apr 19 12:18 File1
-rw-r--r-- 1 user user 4338800 Apr 19 12:18 File2
-rw-r--r-- 1 user user 4438800 Apr 19 12:18 File3
-rwxrwxrwx 1 user user      78 Apr 19 12:18 fix.sh

Respuesta3

"¿Nirsoft Bulk File Changer cambia la marca de fecha de los archivos en un incremento definido y ascendente?"

La respuesta es sí. Hice eso con un lote de archivos. Se puede hacer.

Seleccione la lista de archivos en Total Commander o Windows Explorer y organícela en el orden que desee

Haga clic y tire hacia Nirsoft Bulk File Changer

Ajuste la fecha y hora del primer archivo. Por ejemplo: Fecha de modificación [/] 07-abr-5 [/] 11:40:10 a.m.

[/] Agregar [1] [Minutos]

Haga clic en [/] Modo de secuencia de fecha/hora

NO debe hacer clic en [] La hora está especificada en GMT

Haga clic en [Hacerlo]

Todas las moscas en la lista se cambian con fecha y hora con series de cambio de 1 minuto en secuencia. Primer archivo Agregó 1 minuto Segundo archivo Agregó 2 minutos Tercer archivo Agregó 3 minutos y así sucesivamente.....

información relacionada