我想知道是否使用 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 命令行中是否有任何正确的语法来获取具有绝对路径的文件,或者我是否需要cd
先pub
执行此操作?
(仅供参考:我想做的是使用每天运行的 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 模块。