Используйте командную строку FTP для получения файла с абсолютным путем

Используйте командную строку FTP для получения файла с абсолютным путем

Мне интересно, можно ли с помощью утилиты командной строки FTP использовать getкоманду FTP для получения файла с абсолютным путем, вместо того, чтобы заходить cdв каждый последующий каталог, чтобы получить файл.

Когда я печатаю

ftp> get pub/sdc.tgz

Или даже это (с одним или двумя слешами перед pub)

ftp> get /pub/sdc.tgz

Мне сообщается, что файл не может быть найден:

local: /pub/sdc.tgz remote: /pub/sdc.tgz
ftp: local: /pub/sdc.tgz: No such file or directory

Однако, когда я вместо этого делаю

ftp> cd pub
ftp> get sdc.tgz

Работает абсолютно нормально.

Есть ли правильный синтаксис в командной строке ftp, чтобы получить файл с абсолютным путем, или мне нужно сначала cdвойти в систему pub, чтобы сделать это?

(К вашему сведению: я пытаюсь использовать скрипт PERL, который запускается ежедневно и сохраняет файл на FTP-сервере, а затем более поздний скрипт, который 1. получает файл (что я не против сделать wget) и 2. удаляет файл после того, как я его получу, что мне нужно сделать с помощью FTP. Я хочу, чтобы файл был удален вторым скриптом, чтобы в будущем, если у первого скрипта возникнут проблемы с сохранением файла на FTP-сервере, второй скрипт знал, что произошла ошибка, поскольку файла там нет. Я мог бы сохранять его и под разными именами, но я не хочу засорять FTP-сервер кучей файлов с разных дней.)

решение1

Это происходит потому, что когда вы используете FTP-функцию Get и не указываете локальный путь/имя файла, она пытается использовать тот же путь/имя, что и для удаленного файла.

Эта ошибка:

ftp: local: /pub/sdc.tgz: No such file or directory

Говорит вам, что не может найти файл на ЛОКАЛЬНОЙ машине. Поэтому я предполагаю, что у вас нет папки "pub" в корне вашего локального диска.

Синтаксис:получатьудаленный-файл [локальный-файл]

Параметры:

remote-file — указывает удаленный файл для копирования.

local-file — указывает имя для использования на локальном компьютере.Если не указано иное, файлу присваивается имя удаленного файла.

Поэтому попробуйте что-то вроде:

ftp> get pub/sdc.tgz c:\temp\sdc.tgz

или, возможно,

ftp> get pub/sdc.tgz .\sdc.tgz

Чтобы загрузить его в текущую папку.

Видетьздесьдля получения дополнительной информации оПолучатьПрименение.

Сопутствующий вопрос SU:Можно ли указать место назначения с помощью команды ftp get?

решение2

Вы можете использовать ncftpget, который использует абсолютные пути, если вы можете установить его на своем клиентском компьютере.

Также, если вы используете Perl, то вы можете взглянуть наFTP-модуль.

Связанный контент