Колись, під старим добрим KDE я використовував Digikam для керування своїми фотографіями. Після переходу на Ubuntu і Gnome, я вирішив використовувати щось рідніше для Гнома і "погодився" на штатний для Ubuntu F-Spot.
Виглядав F-Spot ніби нормальним, але мав одну особливість - вперто хотів імпортувати фотографії сторюючи стуруктуру директорій РІК/МІСЯЦЬ/ДЕНЬ. А в мене вони були як мені було зручно (АЛЬБОМ/ПІДАЛЬБОМ, або РІК.МІСЯЦь). Мене раніше це не хвилювало бо Digikam показував мені теки сортовані за датою, тому як би я їх не називав - бачив завжди в інтиїтивно-зрозумілому представлені.
А нова структура, що використовується в F-Spot, так замахувала мене (треба ж спеціально виставляти налаштування при імпорті, щоб використовувати довільну структуру тек) що я вирішив погодитись з F-Spot і перетворити усю колекцію у структуру "РІК/МІСЯЦЬ/ДЕНЬ".
Перетворив. Спочатку було ніби нормально, а потім сильно пошкодував.
-
F-Spot досить гальмівна програма
-
Знайти фото в F-Spot дуже непросто, гортаючи тисячі фото в декілька рядів
-
Відсутня структура за теками (ніяких тобі "Юрі-28" чи "Хрестини андрійчика"), лише вручну встановлені мітки
-
Не імпортувались відеофайли (всі мої AVI зняті фотоапаратом пропали!)
-
Файли розкинуто по директоріях-датах по даних Exif (а виявилось я мав купу "чужих" фото знятих з не налаштованою датою в фотоапараті)
-
Якщо файл було змінено (відредаговано) то в F-Spot він розташувався в директорії відповідно до дати ост. редагування, а не оригінальної директорії-альбому, разом з іншими фото того ж дня
Коротше фіаско. Навіть моя Галя, яка не часто працює з фотоальбомами, різко негативно оцінила зручність роботи в F-Spot (я вже мовчу що пропали всі теги з Digikam).
Я спробував поставити Digikam в Gnome (безпосередньо з репозиторію). По-перше, виявилось що він зовсім мало встановив з середовища KDE (чого я найбільше боявся) , а по друге працює шустро, значно швидше F-Spot і має можливості редагування яких і близько нема в F-Spot (мої RAW від Nikon відкриваються "на ура").
Але от халепа - усі мої файли в структурі сортованій по даті. Як не парадоксально, але в позбачлених відзнак директорія знайти потрібні фото - дуже важко! Це дуже погана ідея змушувати міняти структуру для роботи певної програми! Щоб Ви зрозуміли пікантність ситуації, йдеться десь про 5000 файлів.
Тому я вирішив відновлювати фотоколекцію з CD/DVD архівних копій (крім останніх 3-х місяців все мало й архіви). Виявилось що два CD (з десяти) були "підбиті". З DVD проблем не було. Файли з "битих" дисків переписував з існуючих директорій F-Spot вручну.
І ось виникла задача: як перевірити що нова колекція, відновлена з резервних копій містить усі файли що були у колекції F-Spot? Треба перевірити чи всі фото що є у F-Spot (які я вже переписав в іншу директорії, "набік") мають копію у /home/user/Pictures (яка вже має іншу структуру).
Перше що мені прийшло на думку - просто отримати перелік файлів з обох директорій і порівняти їх. Складність була хіба в тому щоб отримати прелік назв файлів, без шляху до файлу, щоб порівнювати однакові дані.
Отримав перелік усіх файлів зі шлахами (у відповідних директоріях):
#find -name "*.*" > old.list
#find -name "*.*" > new.list
Отримав прелік файлі відрізавши шлях до файлу (split - ділить стрічку з повною назвою файлу на частини, використовуючи слеш "/" як розділювач і друкує останній елемент отриманого масиву (a) що складається з частин стрічки):
#awk '{split ($0, a, "/"); print a[split ($0, a, "/")]}' new.list > new
#awk '{split ($0, a, "/"); print a[split ($0, a, "/")]}' old.list > old
Тепер файл "old" містить усі назви файлів з старої структури F-Spot, а файл "new" містить усі назви файлів з нової директорії фотографій. залишилось їх порівняти і визначити чи є в "old" назви якиз нема в "new". Чомусь просте "diff old new" мені не підійшло - навіть посортувавши імена файлів порівнювались цілі блоки, а не стрічки, тому, візуально результат не сприймався.
Тут я вирішив вистрілити "гарматою по горобцях" - завантажив файли у відповідні таблиці MySQl бази "new" і "old" і виконав SQL-запит щоб порівняти таблиці:
SELECT * FROM old
WHERE filename NOT IN
(
SELECT filename FROM new
);
В результаті отримав перелік з близбко 300 файлів які були на диску в директорії F-Spot але чомусь не потрапили, свого часу, до резервних копій на диски. Я знайшов переписав їх з F-Spot в нову директорію (благо здебільшо це виявлялись цілі пропущені альбоми).
Висновки:
-
Бережи резервні копії змолоду
-
F-Spot не рулез
-
Digikam - рулез
Digikam чемно просканував всю мою структуру і показує мені все за
датою, за директоріями, за директоріями по даті, за директоріями по
імені - сиджу і радію! Чудовий інтерфейс, редагує фото, купа фільтрів, розуміє RAW з пів-слова, червоні
очі забирає - хай Picasa сховається (до речі Picasa теж
підгальмовувала, хоча і можна використовувати), "бачить" і фото і відео.
P.S.
В пошуках фотоорганізаторів надибав RAW-редактор (прощавай Adobe Lightroom?) - RawTherapee: безкоштовний редактор для Unix/Linux/Mac/Windows. Виглядає просто, але пристойно. Я тішуся і Вам раджу! :)
