回答:
(もちろん/ に加えて)-np
/ --no-parent
オプションをに渡す必要があります。そうしないと、私のサイトのディレクトリインデックス内の親ディレクトリへのリンクをたどります。したがって、コマンドは次のようになります。wget
-r
--recursive
wget --recursive --no-parent http://example.com/configs/.vim/
自動生成されたindex.html
ファイルのダウンロードを回避するには、-R
/ --reject
オプションを使用します。
wget -r -np -R "index.html*" http://example.com/configs/.vim/
ディレクトリを再帰的にダウンロードすると、index.html *ファイルが拒否され、ホスト名、親ディレクトリ、およびディレクトリ構造全体なしでダウンロードされます。
wget -r -nH --cut-dirs=2 --no-parent --reject="index.html*" http://mysite.com/dir1/dir2/data
同様の問題を抱えている他の人のために。Wgetが続くrobots.txt
ため、サイトを取得できません。心配しないで、オフにできます:
wget -e robots=off http://www.example.com/
http://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html
サーバーのディレクトリからファイルをダウンロードするために機能した完全なwgetコマンドを次に示します(を無視robots.txt
)。
wget -e robots=off --cut-dirs=3 --user-agent=Mozilla/5.0 --reject="index.html*" --no-parent --recursive --relative --level=1 --no-directories http://www.example.com/archive/example/5.3.0/
--no-parent
助けにならない場合は、--include
オプションをできます。
ディレクトリ構造:
http://<host>/downloads/good
http://<host>/downloads/bad
そして、あなたはダウンロードしたいdownloads/good
がdownloads/bad
ディレクトリはしたくない:
wget --include downloads/good --mirror --execute robots=off --no-host-directories --cut-dirs=1 --reject="index.html*" --continue http://<host>/downloads/good
wget -r http://mysite.com/configs/.vim/
私のために働く。
おそらく、それを妨害している.wgetrcがありますか?
必要なのは1つがあり、二つのフラグで"-r"
再帰とするために"--no-parent"
(または-np
に行くしないようにするために)'.'
と".."
。このような:
wget -r --no-parent http://example.com/configs/.vim/
それでおしまい。次のローカルツリーにダウンロードされます./example.com/configs/.vim
。ただし、最初の2つのディレクトリが不要な場合は--cut-dirs=2
、以前の返信で提案されている追加のフラグを使用します。
wget -r --no-parent --cut-dirs=2 http://example.com/configs/.vim/
そして、それはあなただけにあなたのファイルツリーをダウンロードします ./.vim/
実際、私はこの回答の最初の行をwgetマニュアルから正確に取得しました。セクション4.3の終わり近くに、非常に明確な例があります。
次のオプションは、再帰的なダウンロードを処理する場合に最適な組み合わせのようです。
wget -nd -np -P / dest / dir --recursive http:// url / dir1 / dir2
便宜上、manページの関連スニペット:
-nd
--no-directories
Do not create a hierarchy of directories when retrieving recursively. With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the
filenames will get extensions .n).
-np
--no-parent
Do not ever ascend to the parent directory when retrieving recursively. This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.
このバージョンは再帰的にダウンロードし、親ディレクトリを作成しません。
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/"