Добрый день!
Такой вопрос:
Через консольный ftp-клиент lftp подключаюсь к определенному адресу. В корне несколько каталогов, с множеством подкаталогов. Мне нужно найти в этих подкаталогах файлы с определенным расширением (например, rar-архивы), и скачать их себе на винт.
Без ftp я задачу решил (локально делаю выборку в директории, и копирую), вот команда:
find /ftp/stat/*/?.rar -exec cp {} /home/debian5/backup \;
Но при подключении по ftp возникают проблемы.
Уже подключившись, даю такую команду:
find /content/*/ *.htm -exec mget {} -O /home/ruslan413/ \;
и получаю что-то вроде
find: Ошибка доступа: 550 /content/mods/search/*.htm: No such file or directory
find: Ошибка доступа: 550 /content/mods/search/-exec: No such file or directory
find: Ошибка доступа: 550 /content/mods/search/mget: No such file or directory
find: Ошибка доступа: 550 /content/mods/search/{}: No such file or directory
find: Ошибка доступа: 550 /content/mods/search/-O: No such file or directory
Видимо -exec в lftp не работает, cp тоже. Подскажите каким образом можно решить данную задачу?
Заранее спасибо!
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Дело в том, что да, find в lftp — совсем не тот, что классическая UNIX-утилита.
Поскольку поиск у вас проводится довольно простой, рекомендую попробовать mget. Примерно так:
cd /home/ruslan413
lftp ftp.server.hostname
mget /content/*/*.htm
(mget понимает «*», так что все соответствующие файлы закачает в текущий каталог — для и делается «cd» перед lftp)
Спасибо! Еще решил это командой
mirror -i rar content /home/ruslan413/mirror
Только вот в content еще много подкаталогов, и если они пустые, либо файлы в них не подходят по маске, заданной -i/, то копируются и нужные мне файлы, и эти каталоги, пустые.
mget /content/*/*.htm — конечно эффективнее в данном случае. Еще раз спасибо!
Еще один вопрос. Скачку наладил, теперь по аналогии пытаюсь удалить уже скачанные файлы,
но не поулчается, получаю ошибку 550 — недостаточно прав.
Удаляю командой rm -r /content/*/*.htm
CHMOD у каталогов я менять не могу. Но файлы удалить получается, если я захожу в сам каталог где лежит файл, и удаляю его rm.
Посоветуйте, как-нибудь можно массовое удаление сделать?