3

Я ищу утилиту, которая пакетным / массовым образом изменяет метки даты файла (дата, измененная и / или дата создания) со второй точностью, но делает это в порядке возрастания, например

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

Я хочу сделать это, потому что я хочу заставить Flickr упорядочивать загруженные фотографии в определенной последовательности.

Я хотел бы это для Windows или Mac. У меня есть и Ubuntu, так что я могу считать это второстепенным выбором.

3 ответа3

4

это

  • работает в Linux/Mac,
  • не использует искусственных задержек, чтобы создать разброс времени, и
  • сохраняет дату модификации близко к оригиналу (я часто нахожу эти даты удобными в других контекстах).

 

#!/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

Просто укажите файлы в желаемом временном порядке, и он будет использовать временную метку первого файла в качестве базы, и постепенно добавляйте одну секунду к каждому из следующих аргументов.

Если эталонный файл указан несколько раз, он сохранит свое первоначальное время (это возможно только для выполнения, например, «retime 0001.jpg *» без изменения эталонной отметки времени). Если другой файл указан несколько раз, он получит последнюю логическую метку времени.

Без -h touch будет разыменовывать символические ссылки, что, скорее всего, не нужно в этом случае (если вы говорите «символические что-сейчас?»).«Тогда не волнуйтесь).

2

Хороший вопрос, хотя, возможно, Flickr должен иметь какую-либо опцию для заказа загруженных файлов.

Для Windows я бы предложил

Nirsoft Bulk File Changer

Для Linux можно легко написать скрипт bash и использовать команду touch для изменения нескольких файлов.

Сенсорная команда также доступна в Mac OS X, кто-то написал задачу автоматизации, чтобы сделать это, но снова это могло бы быть сделано на терминале

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

Этот скрипт bash будет касаться каждого файла в порядке возрастания. Вы можете добавить "сон" к сценарию, если хотите, чтобы каждый файл имел другое второе значение.

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
0

msgstr "Nirsoft Bulk File Changer изменяет отметку даты файлов с заданным шагом, начиная с возрастания."

Ответ ДА. Я сделал это для пакета файлов. Это может быть сделано.

Выберите список файлов в Total Commander или Windows Explorer и расположите их в нужном вам порядке.

Нажмите и перетащите в Nirsoft Bulk File Changer

Настройте дату и время первого файла. Например: Дата изменения [/] 07-Apr-5 [/] 11:40:10 AM

[/] Добавить [1] [Минуты]

Нажмите на [/] Режим даты / времени

НЕ ДОЛЖЕН нажимать [] Время указано в GMT

Нажмите на [Сделать это]

Все мухи в списке заменяются меткой даты и времени с последовательностью смены 1 минуты. Первый файл добавлен 1 минута второй файл добавлен 2 минуты третий файл добавлен 3 минуты и так далее .....

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .