Если это, вероятно, единовременная проблема, я бы решил ее неполным решением, используя сначала маленький SQL-скрипт:
SELECT filename FROM images;
и попросите клиента базы данных mysql
или psql
или что-либо еще, чтобы вывести вывод в виде простого текста в файл. (Перенаправление оболочки может сделать эту работу, если вы не можете легко найти команду «dump to file» вашего клиента базы данных.)
Тогда я получу список каталогов:
ls /path/to/images/ > ls_files
Сортировать как:
sort db_files > db_files.sorted
sort ls_files > ls_files.sorted
Затем запустите diff(1)
, чтобы увидеть, на какие файлы ссылаются, где:
diff -u ls_files.sorted db_files.sorted
Строки с префиксом +
или -
находятся в одной, но не в другой.
Вам может понадобиться отредактировать вывод SQL или вывод ls
, чтобы получить один, соответствующий другому. Если в вашем редакторе есть инструмент, подобный блоку выбора vim
, ^V
, некоторые из этих задач редактирования могут быть упрощены, но иногда просто запуск ls
из другого каталога может помочь предопределить правильную структуру каталога перед каждым именем файла.