Работа с LFTP, поиск и опция -exec выдает ошибку

883
user2023507

Что не так с следующей командой lftp? Там файлы на сервере. Я пытаюсь получить их имена без указания пути (например ./) Просто имена файлов.

lftp -u user,password -e 'find -exec basename {} \; ;bye' ftp.mycompany.com/Courses >/opt/output/downloaded/course_list 

Я получаю следующую ошибку -

cd ok, cwd=/Courses find: invalid option -- 'e' Usage: find [-d #] dir 
1

1 ответ на вопрос

1
Gombai Sándor

The error shows exactly what parameter find must get to start: it's the directory under which it must seek. Actually, that's the only parameter that must be there, all the rest is for your sake.

On the other hand, you don't have to call basename to omit the directories from the output. Using -printf and the appropriate sequences, you can print any piece of the properties of the files found. man find will help.

Это FTP-сервер. Вероятно, другой найти пакет. Есть ли место, где я могу увидеть синтаксис поиска? Я перепробовал все комбинации, которые нашел в интернете. Нет работы. Я пробовал это - `lftp -u пользователь, пароль -e 'найти -d.; ; пока 'ftp.mycompany.com/Courses> / opt / output / download / course_list`, тогда написано `find:. - не число` user2023507 8 лет назад 0
Если я дам `-e 'найти. ; пока '`тогда это работает. Итак, я добавил `-e 'find. -exec basename {} \; ; Bye'`. Затем он принимает все разделенные пробелами токены как каталоги. Говорит-exec accessdenied; базовое имя accessdenied; так далее., user2023507 8 лет назад 0
-d #, вероятно, будет означать находить в каталоге глубину # уровней, вы можете просто забыть об этом здесь. Самый простой способ запустить поиск - это «найти». который перечисляет содержимое текущего каталога. Gombai Sándor 8 лет назад 0
Я предложил выше забыть назвать basename и использовать -print. Чтобы быть точным -printf "% f \ n" Но я боюсь, что ваша проблема более серьезна. Похоже, у вас есть упрощенная находка, которая вряд ли знает что-либо из того, что будет делать обычная находка. Gombai Sándor 8 лет назад 0
то же самое..! когда я дам `-e 'найти. -printf "% f \ n"; пока ", он говорит" найти: доступ не выполнен: 550 не удалось сменить каталог. (/ Курсы / -printf) ` user2023507 8 лет назад 0
Эта находка изуродована, чтобы быть маленькой, чтобы соответствовать прошивке. Это не сработает. Но вы можете перечислить файлы с путями в выходной файл / канал и отфильтровать их, чтобы они содержали только имена. Просто sed / awk с одним вкладышем. Gombai Sándor 8 лет назад 1
Давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/36297/discussion-between-user2023507-and-gombai-sandor). user2023507 8 лет назад 0

Похожие вопросы