Bash: как рекурсивно ftp файлов определенного типа в нескольких каталогах

Возможно ли иметь два подстановочных знака? Если нет, есть ли другой способ решить эту проблему?

Я пытаюсь рекурсивно получить тип файла с ftp-сервера, используя Bash. Но у меня проблемы с тем, что я пытаюсь удалить файлы из нескольких каталогов. Многие из этих имен каталогов будут иметь совпадающие строки. Клиент будет искать все каталоги с соответствующей строкой и получать файлы определенного типа из каждого. В каждом каталоге может быть много файлов с одинаковым расширением.

То, что я пытался сделать, это использовать wget рекурсивно.

wget -r 'ftp://anonymous:@$HOST/$PATH/$DIRSTRING*/*.$FILEEXT

Это дает мне сообщение об ошибке, в котором говорится, что файл или каталог $PATH/$DIRSTRING*/ не найден.

Я знаю, что wget поддерживает подстановку. Но возможно ли иметь два подстановочных знака? Если нет, есть ли другой способ решить эту проблему?

С уважением


person eltaco431    schedule 14.02.2013    source источник
comment
Я думаю, что $PATH/$DIRSTRING следует расширять локально? Вы должны попробовать с двойными кавычками, как в wget -r "ftp://..   -  person 244an    schedule 14.02.2013
comment
У меня та же проблема, использование двойных кавычек не работает, какие еще предложения?   -  person user1834095    schedule 24.06.2013


Ответы (1)


wget на самом деле не подходит для такого использования ftp ... но lftp очень хорошо зеркалирует данные ftp-сайта, он даже поддерживает подстановку! :) для вашего примера:

lftp -e "mirror -I '$DIRSTRING*/*$FILEEXT' /$RPATH mirrorSite" ftp://anonymous@$HOST

см. команду man lftp / зеркало

person Zoltán Haindrich    schedule 19.07.2013