6

При использовании команды DOS FTP в Windows 7 я могу использовать эту команду FTP для рекурсивного вывода списка всех файлов удаленного каталога:

ftp> ls -R

Я не могу получить вывод ls -R в локальный файл, FTP продолжает жаловаться на синтаксис:

ftp> ls -R . save.txt
usage: ls remote-directory local-file

Может кто-нибудь объяснить, почему и как получить желаемый результат?

3 ответа3

7

насколько я знаю, когда вы находитесь в интерактивной оболочке ftp, вывод не может быть захвачен.

но вы можете либо передать команды в команду ftp, либо указать файл с командами (требуется, если вам нужно несколько команд, например, указать имя пользователя / пароль)

затем вы перенаправляете стандартный вывод в файл.

как это:

echo ls -R | ftp yourHostname > save.txt

или вы помещаете все свои команды (скажем, mycommands.txt) в текстовый файл и вызываете его с помощью

ftp -s:mycommands.txt > save.txt

mycommmands.txt может выглядеть так

user yourName yourPassword
open yourHostname
cd someDirectory
ls -R

(я не смог протестировать второй пример прямо сейчас, поэтому дайте мне знать, если он не работает)

4

Предполагая, что вы используете простой ftp через командную строку, используйте команду dir с параметром -Rl для рекурсивного поиска и копирования его в файл, а затем выполните поиск файла с помощью grep, find или любого другого способа, поддерживаемого вашей ОС.

ftp> dir -Rl education.txt
output to local-file: education.txt? y
227 Entering Passive Mode (9,62,119,15,138,239)
150 Opening ASCII mode data connection for file list
226 Transfer complete
1
ftp> dir * Sample.txt

Это сработало для меня.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .