Мой вопрос касается сохранения множества файлов из множества каталогов только в одной директории путем сохранения всех старых версий файлов. У меня около 10 каталогов с очень похожими файлами (10 каталогов резервных копий, созданных с использованием Linux, Windows и MacOS). Я хочу объединить эти 10 каталогов только в одном. Например, у меня есть 3 каталога a, b и c со следующим содержимым:
a
- fileA.txt (дата 10/10/2012)
- fileB.txt (дата 12.10.2012)
- fileC.txt (дата 01/05/2013)
б
- fileA.txt (дата 10/01/2013)
- fileB.txt (дата 10.02.2013)
- fileC.txt (дата 01/05/2013)
- fileD.txt (дата 02/05/2013)
с
- fileA.txt (дата 10/10/2012)
- fileB.txt (дата 12/02/2013)
Результирующий каталог должен быть:
- fileA.txt (дата 10/01/2013 от b)
- fileA.txt_20121010hhmmss (из a и c (тот же файл))
- fileB.txt (дата 12/02/2013 от c)
- fileB.txt_20121210hhmmss (из)
- fileB.txt_20130210hhmmss (из б)
- fileC.txt (дата 01/05/2013 из a и b (тот же файл))
- fileD.txt (дата 02/05/2013 из б)
чч = часы мм = минуты сс = секунды
В настоящее время я работаю над сценарием Perl, который может сравнивать файлы с помощью функции "сравнить" и контрольной суммы md5.
Я приказываю найти дату изменения (если файлы отличаются), я использую метаданные (когда могу), используя Exiftool (несколько совместимых файлов, таких как docx, ppt pdf jpg ...), в противном случае я использую метку времени с помощью команды stat ,
Файл без добавленного расширения должен быть самым последним из всех файлов с одинаковым именем.
Скрипт Perl очень медленный и сложный, поэтому я ищу более надежное решение.
Спасибо за помощь.
NB: - Я хочу использовать это решение на сервере Synology (DS212), на котором у меня действительно мало классических команд оболочки. При необходимости я могу скопировать эти файлы на машину с Linux (или OSX), чтобы сделать это.