我有一个web目录,我存储一些配置文件。我想使用wget将这些文件拉下来并保持它们当前的结构。例如,远程目录看起来像:
http://mysite.com/configs/.vim/
.vim包含多个文件和目录。我想用wget在客户端复制它。似乎无法找到正确的wget标志组合来完成这项工作。什么好主意吗?
我有一个web目录,我存储一些配置文件。我想使用wget将这些文件拉下来并保持它们当前的结构。例如,远程目录看起来像:
http://mysite.com/configs/.vim/
.vim包含多个文件和目录。我想用wget在客户端复制它。似乎无法找到正确的wget标志组合来完成这项工作。什么好主意吗?
当前回答
使用下面的命令,递归获取用户名和密码的目录:
wget -r --user=(put username here) --password='(put password here)' --no-parent http://example.com/
其他回答
这个版本递归下载,不创建父目录。
wgetod() {
NSLASH="$(echo "$1" | perl -pe 's|.*://[^/]+(.*?)/?$|\1|' | grep -o / | wc -l)"
NCUT=$((NSLASH > 0 ? NSLASH-1 : 0))
wget -r -nH --user-agent=Mozilla/5.0 --cut-dirs=$NCUT --no-parent --reject="index.html*" "$1"
}
用法:
添加到~/。Bashrc或粘贴到终端 wgetod“http://example.com/x/”
您应该使用-m (mirror)标志,因为这样可以避免混淆时间戳并无限地递归。
wget -m http://example.com/configs/.vim/
如果你加上其他人在这篇文章中提到的要点,它将是:
wget -m -e robots=off --no-parent http://example.com/configs/.vim/
递归wget忽略机器人(用于网站)
wget -e robots=off -r -np --page-requisites --convert-links 'http://example.com/folder/'
-e robots=off使它忽略该域的robots.txt
-r使它递归
-np = no parent,所以它不会跟随链接到父文件夹
wget -r http://mysite.com/configs/.vim/
对我有用。
也许你有一个。wgetrc干扰它?
你只要加一个-r就可以了
wget -r http://stackoverflow.com/