Просто чтобы подвести итог тому, что другие уже сказали. Если вы пытаетесь написать сценарий переносимой оболочки, который работает как пакетный файл, вам необходимо использовать решение lftp, поскольку на некоторых серверах FTP может не реализовываться ls -R
. Просто замените 123.456.789.100 фактическим IP-адресом ftp-сервера в следующих примерах:
$ lftp -c "open 123.456.789.100 && find -l && exit" > listing.txt
См. Страницу man
lftp, перейдите в раздел find
:
Список файлов в каталоге (текущий каталог по умолчанию)
рекурсивно. Это может помочь с серверами без поддержки ls -R. Вы
может перенаправить вывод этой команды.
Однако если у вас есть способ выяснить, реализует ли удаленный ftp-сервер надлежащую поддержку ls -lR
, тогда гораздо лучшим (= более быстрым) решением будет:
$ echo ls -lR | ftp 123.456.789.100 > listing.txt
Просто для справки: если я выполняю первую команду (lftp + find), для получения полного списка требуется 0m55.384 с, а если я выполняю вторую команду (ftp + ls-R), то 0 м3.225 с. 1019 *