如何在Linux上通过FTP递归下载文件夹
我试图使用命令行ftp客户端来ftp文件夹,但到目前为止,我只能使用'get'来获取单个文件。
你可以依赖通常处理ftp的wget(至少在我自己的经验中)。 例如:
wget -r ftp://user:pass@server.com/
您也可以使用适合镜像的-m
。 它目前等价于-r -N -l inf
。
如果凭证详细信息中包含一些特殊字符,则可以指定--user
和--password
参数以使其起作用。 具有特定字符的自定义登录示例:
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
编辑正如@asmaier指出的那样,注意即使-r
是递归,它的默认最高级别为5:
-r
--recursive
Turn on recursive retrieving.
-l depth
--level=depth
Specify recursion maximum depth level depth. The default maximum depth is 5.
如果你不想错过子目录,最好使用镜像选项-m
:
-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.
只是为了补充ThibautBarrère给出的答案。
我用了
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
请注意服务器名称后面的双斜线。 如果我没有额外的斜杠,路径是相对于用户的主目录。
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
链接地址: http://www.djcxy.com/p/78113.html