wget은 중첩된 디렉터리를 제외하지 않습니다.

wget은 중첩된 디렉터리를 제외하지 않습니다.

나는 보았다이것하지만 작동하지 않습니다. Remote/ftp 디렉토리 구조는 다음과 같습니다.

domain.com/
  toplevel/
    foo1/
      ARCHIVE/
        README.stuff
        DATA/
          README.txt
          ...other nested folders
      wantedstuff.zip
      wantedstuff2/
        morewantedstuff.zip
        ...otherstuffwanted

/toplevel.txt /ARCHIVE에 있는 각 중첩 폴더의 폴더 내부에 있는 모든 것을 제외한 모든 것을 원합니다 /toplevel/*.

나는 이것을 시도했습니다 :

wget --continue -r --exclude-directories=/ARCHIVE/ ftp://domain.com/toplevel/

그리고 이것들은:

wget --continue -r --exclude-directories=ARCHIVE ftp://domain.com/toplevel/
wget --continue -r --exclude-directories=ARCHIVE/ ftp://domain.com/toplevel/
wget --continue -r X /ARCHIVE/ ftp://domain.com/toplevel/
wget --continue -r -X '*/ARCHIVE/*' ftp://domain.com/toplevel/
wget --continue -r -X '*/ARCHIVE' ftp://domain.com/toplevel/
wget --continue -r --reject-regex '.*/ARCHIVE/.*' ftp://domain.com/toplevel/

하지만 그 어느 것도 작동하지 않는 것 같습니다. 여전히 ARCHIVE 폴더를 다운로드합니다. 다운로드를 중지하는 방법이 궁금합니다.

답변1

toplevel/foo를 포함해야 합니다.이전 예해결책은 다음과 같아야 합니다.

wget --continue -r --exclude-directories=/toplevel/foo/ARCHIVE/ ftp://domain.com/toplevel/

어떤 이유로 나는 다음을 선호합니다.

wget --continue  -X /toplevel/foo/ARCHIVE/ -r ftp://domain.com/toplevel/

처음 두 개의 최상위 수준에서 모든 ARCHIVE 디렉터리를 제외하려면:

wget --continue  -X */*/ARCHIVE/ -r ftp://domain.com/toplevel/

그러나 이것은 개인적인 취향입니다.

관련 정보