답변:
당신은 통과해야 -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 follow robots.txt
는 사이트를 가져 오지 못할 수 있습니다. 걱정할 필요가 없습니다.
wget -e robots=off http://www.example.com/
http://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html
--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
당신이 필요로하는 일이고, 두 플래그입니다 "-r"
재귀 및 대한 "--no-parent"
(또는 -np
에 갈 수없는 순서대로) '.'
와 ".."
. 이처럼 :
wget -r --no-parent http://example.com/configs/.vim/
그게 다야. 다음 로컬 트리로 다운로드됩니다 ./example.com/configs/.vim
.. 그러나 처음 두 디렉토리를 원하지 않으면 --cut-dirs=2
이전 응답에서 제안한대로 추가 플래그를 사용하십시오 .
wget -r --no-parent --cut-dirs=2 http://example.com/configs/.vim/
그리고 파일 트리를 ./.vim/
사실, 나는이 답변에서 첫 번째 줄을 wget manual 에서 정확하게 얻었으며 4.3 섹션의 끝 부분에 대해 매우 깨끗한 예를 가지고 있습니다.
다음 옵션은 재귀 다운로드를 처리 할 때 완벽한 조합으로 보입니다.
wget -nd -np -P / dest / dir-재귀 http : // url / dir1 / dir2
편의를 위해 매뉴얼 페이지의 관련 스 니펫 :
-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/"