使用 FTP 命令行获取具有绝对路径的文件

使用 FTP 命令行获取具有绝对路径的文件

我想知道是否使用 FTP 命令行实用程序,您可以使用 FTPget命令来获取具有绝对路径的文件,而不必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 命令行中是否有任何正确的语法来获取具有绝对路径的文件,或者我是否需要cdpub执行此操作?

(仅供参考:我想做的是使用每天运行的 PERL 脚本将文件保存到 FTP 服务器,然后使用稍后的脚本 1. 获取文件(我并不反对使用它来wget执行此操作) 2. 获取文件后删除该文件,我需要使用 FTP 执行此操作。我希望第二个脚本删除该文件,以便将来如果第一个脚本在将文件保存到 FTP 服务器时遇到问题,第二个脚本就会知道发生了错误,因为文件不在那里。我也可以使用不同的名称保存它,但我不想用不同日期的大量文件污染 FTP 服务器。)

答案1

这是因为当您使用 FTP 的 Get 并且不指定本地路径/文件名时,它会尝试使用与远程文件相同的路径/名称。

此错误:

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

提示您无法在本地计算机上找到该文件。因此,我的假设是您在本地驱动器的根目录中没有“pub”文件夹。

句法:得到远程文件 [本地文件]

参数):

远程文件 — 指定要复制的远程文件。

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 模块

相关内容