Обработать 100K файлов изображений с помощью bash

Вот скрипт для оптимизации изображений jpg: https://github.com/kormoc/imgopt/blob/master/imgopt

Есть CMS с файлами изображений (не моими). Я предполагаю, что существует сложная структура подкаталогов, и скрипт просто рекурсивно находит все файлы img в данной папке. Вопрос в том, как пометить уже обработанные файлы, чтобы при следующем запуске скрипт не трогал их и просто пропускал? Я не знаю, когда ребята захотят добавить в него новые файлы и обработать его. Также я думаю, что переименование не очень хороший выбор.

Я думал о хеш-таблице или ассоциативном массиве, который будет заполнен из txt файла во время запуска. Но нормально ли иметь 100K массива элементов в bash? Кажется сложным для сценария.

Любые другие идеи по оптимизации также приветствуются.

1 ответ

Решение

Я думаю, что проще всего сделать, просто вывести файл с похожим именем для каждого обработанного файла изображения.

Например image1.jpg после обработки будет пустой файл с похожим именем, например .image1.jpg.processed,

Затем, когда ваш скрипт запускается, он просто проверяет наличие текущего изображения: NAME.EXT если файл .NAME.EXT.processed существует. Если файл не существует, то вы знаете, что его нужно обработать. Нет проблем с памятью и не требуется хеш-таблица, если у вас будет 100K пустых дополнительных файлов.

Другие вопросы по тегам