关于命令行:如何在Linux上通过FTP递归下载文件夹

How to recursively download a folder via FTP on Linux

我正在尝试使用命令行ftp客户机对文件夹进行ftp,但到目前为止,我只能使用"get"来获取单个文件。


你可以依靠wget来处理ftp-get(至少在我自己的经验中)。例如:

1
wget -r ftp://user:[email protected]/

您还可以使用适合镜像的-m。目前相当于-r -N -l inf

如果凭证详细信息中有一些特殊字符,则可以指定--user--password参数以使其正常工作。具有特定字符的自定义登录示例:

1
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/

编辑正如@asmaier所指出的,注意即使-r用于递归,它的默认最大级别也为5:

1
2
3
4
5
6
7
       -r
       --recursive
           Turn on recursive retrieving.

       -l depth
       --level=depth
           Specify recursion maximum depth level depth.  The default maximum depth is 5.

如果不想漏掉子目录,最好使用镜像选项-m

1
2
3
4
5
       -m
       --mirror
           Turn on options suitable for mirroring.  This option turns on recursion and time-stamping, sets infinite
           recursion depth and keeps FTP directory listings.  It is currently equivalent to -r -N -l inf
           --no-remove-listing.


只是为了补充蒂博·巴尔给出的答案。

我用过

1
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个组件。双斜线表示一个额外的组件。


1
2
ncftp -u <user> -p <pass> <server>
ncftp> mget directory


如果您的机器上安装了lftp,请使用mirror dir。你就完了。如果要递归下载目录,请参阅下面的ciro注释。


如果您可以使用scp而不是ftp,那么-r选项将为您做到这一点。我将检查您是否可以使用比FTP更现代的文件传输机制。


改用wget。它支持HTTP和FTP协议。

1
wget -r ftp://mydomain.com/mystuff

祝你好运!

参考:http://linux.about.com/od/commands/l/blcmdl1_wget.htm


有"ncftp",可在Linux中安装。这在ftp协议上工作,可以用于递归下载文件和文件夹。在Linux上工作。已被使用,并且在递归文件夹/文件传输中工作正常。

检查此链接…网址:http://www.ncftp.com/


如果你想坚持命令行ftp,你应该尝试ncftp。然后可以使用get-r递归地获取文件夹。你也会完成的。


如果可以的话,我强烈建议您使用tarbzip(或gzip,无论您的船浮在哪里),远程机器上的目录对于任何大的目录来说,节省的带宽可能都是值得的。


埃多克斯1〔12〕

适合Redhat和Ubuntu


你不应该使用ftp。和telnet一样,它不使用安全协议,密码以明文形式传输。这使得第三方很容易获取您的用户名和密码。

要远程复制远程目录,这些选项更好:

  • 如果您可以通过ssh登录,那么rsync是最适合的工具,因为它只复制差异,并且在连接中断时可以很容易地在中间重新启动。

  • ssh -r是递归复制目录结构的第二个最佳选项。

见:

  • rsync手册页

  • ssh手册页


切换"按提示提示"命令。

用途:

1
2
3
ftp>cd /to/directory    
ftp>prompt    
ftp>mget  *