在Linux终端递归下载ftp服务器某个目录的方法

假如要将ftp://127.0.0.1/pub/a/b/c/中的c目录及其内容下载到本地~/目录,即本地~/c/目录对应服务器的/pub/a/b/c目录,该如何操作呢?

方法一:使用lftp工具

cd ~
lftp 127.0.0.1
user <username> [<password>]
cd /pub/a/b
mirror c #或 mirror c ~/c
#mirror c 指把服务器c的内容镜像到本地当前目录,如果指定第二个参数(存放到的本地目录),则第一个c是指c下的所有文件,而不是c目录本身

方法二:使用wget

wget -r ftp://127.0.0.1/pub/a/b/c -P ~ -nH --cut-dirs=3
  • -r 递归下载目录下的内容
  • -P –directory-prefix 指定本地目录前缀,所有下载内容将基于该目录,不指定则为当前目录
  • -nH 不要建立以主机名命名的本地目录,默认wget下载的内容会存放于以主机名命名的子目录中
    –cut-dirs 裁剪目录前缀个数,本例中裁减掉/pub/a/b/共3个目录,这样保存到本地的目录树不会出现/pub/a/b/