1

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

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

ftp> get pub/sdc.tgz

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

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-сервер кучей файлов разных дней.)

2 ответа2

1

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

Эта ошибка:

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

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

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

Параметр (ы):

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

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

Так что попробуйте что-то вроде:

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

или возможно

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

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

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

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

0

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

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

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