Моя проблема довольно прямолинейна, и я думаю, что я близко, но нуждаюсь в поддержке в правильном направлении.
У меня есть таблица MySQL, которая содержит много имен файлов, которые используются веб-сайтом. Все эти файлы существуют в каталоге images
. Я пытаюсь добиться того, чтобы иметь возможность SELECT
некоторые из этих имен файлов на основе различных условий, а затем иметь эти файлы, и только эти файлы добавляются в ZIP-файл.
Я сразу понял, что у меня проблемы с именами файлов, в которых есть пробелы. Поэтому я изменил свой SQL-запрос так, чтобы имена файлов были в кавычках. Итак, что я закончил, было:
zip sample-images $(mysql -u username -pPassword -e "SELECT CONCAT('"', ifnull(products_image, ''), '"'), CONCAT('"', ifnull(products_image_2, ''), '"').... WHERE condition=true" db_name --silent --raw)
Это выводит список всех имен файлов, которые я ищу в базе данных (вместе с пустыми "" записями для нулевых значений), однако результатом для каждой строки является zip warning: name not matched: "filename.jpg"
.
Кто-нибудь может мне помочь с этим?
ОБНОВЛЕНИЕ Я полагаю, что проблема - что-то с экранированием имени файла. Я избежал двойных кавычек в запросе, так что CONCAT стали CONCAT('\"', ifnull(products_image, ''), '\"'),....
но все еще имеют тот же результат.