wget+ftp:如何下载远程目录而不保留完整远程目录树结构
问题原因
wget 默认会保留远程 FTP 服务器的完整目录结构,你当前仅添加了 -nH 参数取消了主机名层级,但远程路径的 some/remote/dir 三层目录依然会被保留,因此最终生成了多余的本地嵌套路径。
解决方法
添加 --cut-dirs=N 参数裁剪不需要的远程目录层级,N 对应你要去掉的目录层数,此处你需要去掉 some/remote/dir 共3层,调整后的命令如下:
wget -nH -r -N -l inf --cut-dirs=3 --ask-password ftp://ftp.server.com/some/remote/dir/xyz -P dirName
补充说明
--cut-dirs=3的作用是忽略远程路径的前3层目录(即some/remote/dir),不会在本地生成对应的嵌套结构- 如果你希望直接把
xyz目录内的内容放到dirName下,不需要额外的xyz层,可以在 FTP 路径末尾加上斜杠:
wget -nH -r -N -l inf --cut-dirs=3 --ask-password ftp://ftp.server.com/some/remote/dir/xyz/ -P dirName
内容的提问来源于stack exchange,提问作者jlconlin
相关产品推荐
相关产品推荐

