Прощавай F-Spot або як я порівнював файли

  у розділі Технічні теми 

F-Spot бека Колись, під старим добрим 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 в нову директорію (благо здебільшо це виявлялись цілі пропущені альбоми).

Висновки:

  1. Бережи резервні копії змолоду

  2. F-Spot не рулез

  3. Digikam - рулез

Digikam - супер Digikam чемно просканував всю мою структуру і показує мені все за датою, за директоріями, за директоріями по даті, за директоріями по імені - сиджу і радію! Чудовий інтерфейс, редагує фото, купа фільтрів, розуміє RAW з пів-слова, червоні очі забирає - хай Picasa сховається (до речі Picasa теж підгальмовувала, хоча і можна використовувати), "бачить" і фото і відео.

P.S.

В пошуках фотоорганізаторів надибав RAW-редактор (прощавай Adobe Lightroom?) - RawTherapee: безкоштовний редактор для Unix/Linux/Mac/Windows. Виглядає просто, але пристойно. Я тішуся і Вам раджу! :)

RawTherapee:

RawTherapee


Коментарі