我试图使用命令行ftp客户端ftp文件夹,但到目前为止,我只能使用“get”来获取单个文件。


当前回答

通过prompt命令切换提示符。

用法:

ftp>cd /to/directory    
ftp>prompt    
ftp>mget  *

其他回答

只是为了补充Thibaut给出的答案Barrère。

我使用

wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory

注意服务器名称后面的双斜杠。如果你不放一个额外的斜杠,路径是相对于用户的主目录。

-nH避免创建以服务器名称命名的目录 -nc避免在目标文件已经存在的情况下创建新文件(它只是被跳过) ——cut-dirs=5允许获取/absolute/path/to/directory的内容,并将其放在启动wget的目录中。数字5用于过滤掉路径的5个组成部分。双斜杠表示一个额外的组件。

通过prompt命令切换提示符。

用法:

ftp>cd /to/directory    
ftp>prompt    
ftp>mget  *

如果您想坚持使用命令行FTP,那么应该尝试NcFTP。然后可以使用get -R来递归地获取文件夹。你也会得到圆满。

如果您可以使用scp而不是ftp,那么-r选项将为您完成此工作。我会检查一下你是否可以使用比FTP更现代的文件传输机制。

如果可以的话,我强烈建议您在远程机器上对目录进行tar和bzip(或gzip,随便什么都行)—对于任何大小的目录,节省的带宽可能都是值得花时间进行压缩/解压缩的。