@accountnujen

Как получить список всех файлов в каталоге и пройтись по ним циклом?

Камера отправляет скриншоты мне на sftp сервер. Грузятся они не в основную папку, а хитровы*бано и имеют путь: /folder/camera1/23.09.21/случайное число/jpg/screenshoot19:57.jpg. Зависимости случайных чисел я не нашел. Нет там ни привязки ни ко времени, ни к дате, ни к событию. Может быть и 1, может быть и 14, а может быть и 7. Я хочу все эти скриншоты отправлять в телегу, а затем удалять. Моя логика такая: поставить cron на каждую минуту и проверять - есть ли скриншоты в папке, и если новые скриншоты есть, то выполнять curl, а затем сносить. Мне нужно как-то получить список всех файлов, которые имеют расширение jpg (то есть, заранее подпапку я знать не буду) и затем по каждому запускать отдельный curl запрос. Curl и cron заводить умею, проблем нет, а с остальным - да.

Вопрос: на сколько мой подход верен?
Вопрос 2: как получить список файлов и затем отдельно по каждому выполнить curl?
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 2
@rPman
делаешь wget -m ... (читай доку чтобы лимитировать конкретную папку, сделает локальную копию с подкаталогами), после с помощью к пример lftp удаляешь рекурсивно все в папке на ftp (rm -rf поддерживает)

осторожно, контролируй ошибки чтобы wget отработал корректно, а то он не скачает а ты следующей командой удалишь.

p.s. намекаю, bash жутко неудобный язык (и подход, использования сторонних утилит на любой чих) для программирования, конечно ты можешь очень сильно извращаясь решить свою задачу, но зачем?

бери более удобные языки, бо в linux есть наверное все что в принципе напридумывали... питон например даже не потребует установки, потому что практически на всех установках он уже есть.
Ответ написан
Комментировать
find /home/avx/Изображения -name "*.jpg" -type f -exec realpath '{}' \;

Это пример команды, которая находит в папке /home/avx/Изображения все файлы *.jpg и выполняет для них (поочерёдно) команду realpath (выводит полный путь к файлу). Вместо неё подсунуть можно другие (алиасы и скрипты похоже нет). Дальше разберётесь. И да, это за 5 минут с перекурами по man find находится.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы