Когда дело доходит до быстрого преобразования группы файлов и случайного их переименования, я использую довольно простой способ сделать это с помощью цикла for:
for i in *; do convert [...] $i ../output/$RANDOM.jpg; done
Просто так.Детали, которые здесь делает imagemagick, здесь не важны.Работает как задумано.Это просто способ работы с bash.
Теперь в моем текущем случае папка не только содержит фотографии, но и сама содержит подпапки с другими фотографиями.Снова ожидается, что все фотографии случайным образом переименовываются, а выходные файлы объединяются в одну папку.
Поскольку я не знаю способа рекурсивного цикла с for, здесь я использую конструкцию find.
find . \( -iname "*.jpg" -or -iname "*.png" \) -exec convert [...] {} ../output/$RANDOM.jpg \;
Проблема в том, что $ RANDOM вызывается только один раз , поэтому он остается неизменным на протяжении всего процесса, и изображения перезаписываются снова и снова.Так что на самом деле выходная папка делает только одно изображение, то, которое было обработано последним.
Итак, вопрос: Как получить переменную $ RANDOM для изменения при каждом новом файле?
С уважением!