Ищете утилиту для пакетного изменения даты создания/изменения нескольких файлов в порядке возрастания даты и времени (Windows XP/7/Mac/Linux)

Ищете утилиту для пакетного изменения даты создания/изменения нескольких файлов в порядке возрастания даты и времени (Windows XP/7/Mac/Linux)

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

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, поэтому я мог бы рассмотреть это как второстепенный вариант.

решение1

Этот

  • работает в 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 Массовый чейнджер файлов

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

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

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

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

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

решение3

«изменяет ли Nirsoft Bulk File Changer отметку даты файлов в определенном порядке по возрастанию».

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

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

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

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

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

Нажмите [/] Режим последовательности даты/времени

НЕ НАЖИМАЙТЕ на [] Время указано по Гринвичу

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

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

Связанный контент