乐闻世界logo
搜索文章和话题

How to recursively download a folder via FTP on Linux

7 个月前提问
5 个月前修改
浏览次数78

1个答案

1

在Linux上通过FTP递归下载文件夹,通常可以使用命令行程序wget或FTP客户端lftp等工具完成此任务。以下是使用这两种不同方法的示例:

使用wget

wget是一个非常流行的命令行工具,可以用来从FTP服务器上递归地下载文件。它的使用很简单,可以通过如下命令实现:

bash
wget -r --ftp-user=用户名 --ftp-password=密码 ftp://服务器地址/路径/

这里的参数解释如下:

  • -r : 递归下载
  • --ftp-user : FTP 用户名
  • --ftp-password : FTP 密码
  • ftp://服务器地址/路径/ : 你想要递归下载的FTP服务器上的文件夹路径

例如,如果您想从ftp.example.com上的/files目录下载文件,并且您的用户名是user,密码是pass,您可以运行:

bash
wget -r --ftp-user=user --ftp-password=pass ftp://ftp.example.com/files/

使用lftp

lftp是另一个强大的命令行工具,它专门用于文件传输。它支持FTP、FTPS、HTTP、HTTPS、HFTP、FISH、SFTP和更多协议。使用lftp递归下载文件夹的命令如下:

bash
lftp -u 用户名,密码 服务器地址 -e "mirror /服务器上的文件夹路径 /本地目的文件夹路径; quit"

这里的参数解释如下:

  • -u 用户名,密码 : 登录FTP服务器的用户名和密码
  • 服务器地址 : FTP服务器的地址
  • mirror /服务器上的文件夹路径 /本地目的文件夹路径 : mirror命令用于镜像远程目录到本地目录
  • quit : 完成后退出lftp

例如,如果您想要从ftp.example.com上的/files目录下载文件到本地的/local/dir目录,您的用户名是user,密码是pass,您可以运行:

bash
lftp -u user,pass ftp.example.com -e "mirror /files /local/dir; quit"

在任何情况下,如果您在公司网络中进行此操作,可能需要遵守相关的数据保护政策和安全协议。此外,一些文件夹可能有权限限制,您可能需要特定的权限才能下载其中的文件。如果你在使用这些命令时遇到问题,应该检查你的网络连接、FTP服务器状态、用户名和密码是否正确,以及你是否有适当的文件访问权限。

2024年6月29日 12:07 回复

你的答案