我想从我的服务器下载.htm或.html文件。我正在尝试使用ncftpget甚至wget,但只取得了有限的成功。
使用ncftpget我可以下载整个树结构没问题,但似乎无法指定我想要的文件,它可以全部或全部。
如果我指定这样的文件类型,它只会查找顶部文件夹:
ncftpget -R -u myuser -p mypass ftp://ftp.myserver.com/public_html/*.htm ./local_folder
如果我这样做,它会下载整个网站而不仅仅是.htm文件:
ncftpget -R -u myuser -p mypass ftp://ftp.myserver.com/public_html/ ./local_folder *.htm
我可以使用ncftp执行此操作,还是应该使用其他工具?
答案 0 :(得分:4)
你可以用wget
来做wget -r -np -A "*.htm*" ftp://site/dir
或:
wget -m -np -A "*.htm*" ftp://user:pass@host/dir
但是,根据Types of Files:
请注意,这两个选项不会影响HTML文件的下载(由
.htm
或.html
文件名前缀确定)。此行为可能不适合所有用户,并且可能会针对Wget的未来版本进行更改。
答案 1 :(得分:0)
ncftpget能理解dir globs吗?
尝试
ncftpget -R -u myuser -p mypass ftp://ftp.myserver.com/public_html/**/*.htm ./local_folder
**表示任意数量的目录。
答案 2 :(得分:0)
wget
命令了解常设unix文件通配语法。
wget -r -np --ftp-user=username --ftp-password=password "ftp://example.com/path/to/dir/*.htm"
相反,您可以使用-A
选项,该选项接受逗号分隔的文件名后缀或模式列表以接受。
wget -A '*.htm'
-R
选项与-A
相反,因此您可以使用它来指定不要获取的模式。
警告:确保引用模式!否则,您的shell 可能会扩展glob本身,从而导致意外结果。
另外!请参阅有关服务器故障的"Using wget to recursively download whole FTP directories"问题。