.png)
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
, touch
se 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.....