.png)
Estou procurando um utilitário que modifique em lote/em massa os carimbos de data do arquivo (data de modificação e/ou data de criação) para a segunda precisão, mas faça isso em ordem incremental crescente, por exemplo
File1 2012-04-18 10:21:01
File2 2012-04-18 10:21:02
File3 2012-04-18 10:21:03
Quero fazer isso porque quero forçar o Flickr a ordenar as fotos enviadas em uma determinada sequência.
Eu gostaria disso para Windows ou Mac. Eu também tenho o Ubuntu, então poderia considerar isso como uma escolha secundária.
Responder1
Esse
- funciona em Linux/Mac,
- não usa atrasos artificiais para criar dispersão de tempo, e
- mantém a data de modificação próxima do original (muitas vezes considero essas datas úteis em outros 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
Basta especificar os arquivosem ordem temporal desejadae usará o carimbo de data/hora do primeiro arquivo como base e adicionará um segundo incrementalmente a cada um dos argumentos a seguir.
Se o arquivo de referência for fornecido várias vezes, ele manterá sua hora original (isso só será possível fazer, por exemplo, "retime 0001.jpg *" sem alterar o carimbo de data e hora de referência). Se outro arquivo for fornecido várias vezes, ele obterá o último carimbo de data/hora lógico.
Sem -h
, touch
desreferenciará links simbólicos, o que provavelmente não é desejado neste caso (se você disser "simbólico e agora?", então não se preocupe).
Responder2
Boa pergunta, embora talvez o Flickr deva ter alguma opção para ordenar os arquivos enviados.
Para Windows eu sugeriria
Trocador de arquivos em massa Nirsoft
Para Linux, pode-se facilmente escrever um script bash e utilizar otocarcomando para alterar vários arquivos.
O comando touch também está disponível no Mac OS X, alguém escreveu umtarefa de automaçãopara fazer isso, mas novamente isso poderia ser feito no terminal
FILES=./*
for f in $FILES
do
echo "Processing $f file..."
touch $f
done
Este script bash tocará em todos os arquivos em ordem crescente. Você poderia adicionar um "sleep" ao script se quisesse que cada arquivo tivesse um 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
Responder3
"O Nirsoft Bulk File Changer altera o carimbo de data dos arquivos em um incremento definido ascendentemente."
A resposta é sim. Eu fiz isso em um lote de arquivos. Pode ser feito.
Selecione a lista de arquivos no Total Commander ou no Windows Explorer e organize na ordem desejada
Clique e puxe para Nirsoft Bulk File Changer
Ajuste a data e hora do primeiro arquivo Por exemplo: Data de modificação [/] 07-Apr-5 [/] 11:40:10 AM
[/] Adicionar [1] [Minutos]
Clique em [/] Modo de sequência de data/hora
NÃO deve clicar em [] O horário é especificado em GMT
Clique em [Faça isso]
Todas as moscas na lista são alteradas com carimbo de data e hora com séries de alteração de 1 minuto em sequência. Primeiro arquivo Adicionado 1 minuto Segundo arquivo Adicionado 2 minutos Terceiro arquivo Adicionado 3 minutos e assim por diante.....