http
에서 큰 디렉터리(하위 디렉터리 포함)를 다운로드했지만 wget
숨겨진 파일( .filename
)이 누락되었습니다.
어떻게 다운로드할 수 있나요?
@dhag에 의해 편집됨
나는 다음 명령을 사용합니다.wget --mirror --no-parent https://.../directory --user=... --password=...
두 번째 질문에 대한 답은 모르겠지만 이 방법으로 숨겨진 파일을 다운로드할 수는 있지만 wget --mirror --no-parent https://.../directory/.hidden_file_name --user=... --password=...
매우 비효율적입니다.
답변1
Dag의 의견이 정확합니다. wget
명령줄에 전달된 URL을 사용하여 페이지를 다운로드합니다. wget
다음과 같은 인수를 받을 가능성이 높습니다 .
wget -r --no-parent http://host/dir
매개변수는 -r
재귀적 다운로드를 나타냅니다. 그러나 재귀적 다운로드가 디렉터리의 모든 항목을 다운로드한다는 의미는 아닙니다 dir
. 이는 특정 URL의 페이지를 다운로드하고, 페이지의 모든 링크를 찾고, 링크된 모든 페이지를 다운로드하는 것을 의미합니다.
그런 다음 URL은 서버의 디렉터리를 가리킬 수 있습니다. 그러나 http 서버는 각 파일에 대한 링크가 포함된 html 페이지를 제공합니다(디렉토리 목록이 허용되는 경우). 그러면 페이지에는 다음과 같은 내용이 포함됩니다.
<a href="filename1">filename1</a><p>
<a href="filename2">filename2</a>
HTML 페이지에는 파일 크기, 파일 유형, 소유자 등과 같은 기타 정보가 포함될 수 있습니다. 그러나 모든 정보는 서버 측에서 생성되며 wget과 같은 클라이언트는 서버에서 제공한 정보만 구문 분석하고 이 "디렉토리 목록"을 통해 페이지에 나열된 링크를 따라갈 수 있습니다.
따라서 파일이 숨겨져 있고 디렉토리 목록에 나열되지 않은 경우 이는 서버 결정이며 서버가 wget 매개변수를 통해 추가 정보를 제공하도록 강제할 수는 없습니다.
그래도 당신은 불행하지 않습니다. 대부분의 http 서버는 구성 가능하며 관리자는 숨길 파일을 결정할 수 있습니다. 예를 들어 Apache 서버에는 IndexIgnore
숨겨야 하는 파일 패턴이 포함된 구성 옵션이 있습니다.