如何用wget递归下载FTP完整目录且不生成.listing文件?
镜像FTP目录时避免生成.listing文件的解决方案
嘿,这个场景我太熟悉了!用wget镜像FTP目录时冒出一堆.listing文件确实挺烦人的,下面给你两种可行的解决思路:
方法一:调整wget参数或事后清理
首先要澄清一个点:默认情况下,wget -m 镜像FTP目录时是会自动删除.listing文件的,只有当你手动添加了--no-remove-listing参数时才会保留。如果你没加这个参数却还是出现了.listing文件,可能是wget版本差异或者特殊的FTP服务器配置导致的,这时候可以试试这两个办法:
- 强制清理:在wget命令执行完后,追加一个删除命令,一次性干掉所有.listing文件:
wget -m ftp://your-ftp-server/path && find ./ -name ".listing" -delete - 检查参数:确认你的命令里没有误加
--no-remove-listing或者类似保留临时文件的参数,比如--keep-temp这类可能间接导致.listing保留的选项。
方法二:使用更合适的替代工具——lftp
如果觉得wget的处理不够顺手,推荐用lftp,它是专门针对FTP/FTPS/SFTP的工具,镜像目录时默认就不会生成.listing文件,功能还更强大:
- 基本镜像命令:
lftp -c "mirror ftp://username:password@your-ftp-server/remote-path ./local-destination" - 额外优势:支持断点续传、并行下载(加
--parallel=N参数指定并发数)、自动跳过已存在的文件,处理复杂FTP场景比wget更省心。
内容的提问来源于stack exchange,提问作者user2484173
相关产品推荐
相关产品推荐

