Какое хорошее приложение для файлов и папок для организации большого количества изображений в Linux?

У меня есть коллекция из 35 000 файлов JPG и 5 000 файлов NEF. Ранее я импортировал и «организовал» эту массовую загрузку изображений с помощью RoboImport. Это вполне соответствовало моему рабочему процессу, поскольку я мог дать ему почти любое возможное имя в зависимости от прикрепленных (EXIF) метаданных.

Недавно я купил себе дополнительный жесткий диск в качестве основного диска для фотографий, чтобы использовать старый в качестве резервной копии. Я воспользовался возможностью, чтобы создать новую схему именования, отделяющую файлы NEF от файлов JPG. Таким образом, я мог бы использовать Windows Live Photo Gallery только для части JPEG, предотвращая появление двойных изображений в галерее.

Тем не менее, Roboimport всегда был стабильным, но с самым большим объемом файлов NEF и JPG с моей dSLR приложение задыхается примерно на 1/5. Он вылетает, и я не могу его возобновить, так как он не точно перенес изображения в хронологическом порядке.


Какое хорошее приложение также способно перемещать файлы на основе метаданных. Это не должно быть сложным, так как я использую такие приложения, как Picasa и т. д., чтобы просматривать свою коллекцию. Linux предпочтительнее, так как это ОС, на которой я провожу больше всего времени, хотя у меня есть Windows на той же машине.

Мех. Здесь не Reddit, вам не нужен tl;dr-мем.
Хм, я привык к StackOverflow :]
Смотрите также photo.stackexchange.com/questions/2138/…
Попробуйте Shotwell, я думаю, вы будете приятно удивлены.
Я обновился до последней версии Shotwell, и теперь она действительно поддерживает файлы RAW. Вероятно, это будет мой выбор, если ничего другого не появится. Другая возможность - сделать это вручную на основе вывода exiv2, однако это займет некоторое время, чтобы написать это.

Ответы (4)

Exiftool — очень мощная утилита для автоматической сортировки и организации фотографий. См. раздел ПРИМЕРЫ ПЕРЕИМЕНОВАНИЯ его руководства.

Новый каталог можно указать, установив значение тега Directory. Например, следующая команда перемещает все изображения, изначально находившиеся в каталоге «DIR», в иерархию каталогов, упорядоченную по годам/месяцам/дням:

exiftool "-Directory<DateTimeOriginal" -d "%Y/%m/%d" DIR

Для перемещения и переименования файлов вы также можете использовать -filenameопцию. Например, чтобы отсортировать изображения по типу файла, году, дате и времени, когда они были сделаны, вы можете запустить:

exiftool -d '%%e/%Y/%Y%m%d/%H%I_%%f.%%e' '-filename<DateTimeOriginal' YOURDIR

Затем файл в YOURDIR с именем like imgp1234.dng, снятый 20 мая 2011 года в 08:01, будет перемещен в папку dng/2011/20110520/и переименован в 0801_imgp1234.dng.

Обратите внимание, что exiftoolперемещаются только изображения, поэтому, если у вас есть файлы sidecar вместе с файлами RAW, вам нужно как-то позаботиться о них. Если на некоторых ваших фотографиях отсутствуют данные EXIF, они не будут перемещены таким образом. Добавить возможность -rрекурсивной обработки YOURDIR.

Выглядит именно так, как мне нужно, но что делает '-filename<DateTimeOriginal'флаг? Кажется -d, предоставляет всю информацию.
@Dykam Основная цель exiftool— чтение и изменение метаданных изображения. Синтаксис -DSTTAG<SRCTAGговорит ему копировать метаданные SRCTAGиз DSTTAG. -filenameдействует как тег для изменения (по сути, переименование файла), DateTimeOriginalдействует как исходный тег (фактические метаданные); -dзадает формат даты (и допускает некоторые расширения, например %%f, %%e). Вы также можете использовать CreateDate, FileModifyDateи ModifyDateтоже.

В то время как вы можете найти несколько программ в стиле «автоматизатор» для Linux (есть еще одна, предназначенная для работы с изображениями, хотя я не могу вспомнить название навскидку).

Но если вы действительно хотите что-то продвинутое (и, возможно, кросс-платформенное), я считаю, что лучший вариант — разработать что-то самостоятельно. Лично мне для таких задач вполне нравится Python (хороший в управлении данными, кроссплатформенность и т. д.), но у вас могут быть другие предпочтения.

Хм, может и правда получится. Я был немного обеспокоен производительностью, Python не самый быстрый язык, и он требует довольно много гигабайт изображений. Но узким местом, вероятно, является ввод-вывод, поэтому при правильном программировании он будет ограничен только этим.
Что-то, читающее EXIF, не должно читать весь файл, и если он находится в той же файловой системе, перемещение вообще не коснется данных. Ввод/вывод вообще не должен быть проблемой.
Хм, действительно, забыл, что я мог бы делегировать перемещение на родные инструменты.
Перемещение файлов должно быть довольно дешевой операцией (если источник/цель находятся на одном диске, это просто перемещение указателя куда-то). В противном случае Python (и большинство других языков) предоставляет надежные очереди и пулы потоков, чтобы легко справляться с подобными вещами.

Переименование файловых баз на EXIF/IPTC можно сделать с помощью XnView под Windows и достаточно стабильно для моих нескольких Гб (иногда после отпуска). Поскольку вы можете искать EXIF ​​/ IPTC, вы можете перемещать их на основе метаданных, но одновременное перемещение и переименование - нет.

find /path/to/photos -type f -name "*.NEF" -exec mv {} /path/to/destination/ \;

Эта команда найдет все файлы с расширением «NEF» и переместит их в указанное место назначения (по одному). Вы можете повторить это и для ваших файлов JPEG.

Это только разделяет NEF, я предпочитаю, чтобы это было возможно за один шаг. Однако это часть инструментария, спасибо.