cd
저는 Mac 사용자이고 웹 페이지에 액세스한 다음 cp
일부 파일을 로컬 디렉터리에 저장하고 싶습니다 . 이를 수행할 수 있는 방법이 있습니까?
제가 참고하는 페이지는 다음과 같습니다.http://www0.cs.ucl.ac.uk/staff/M.Herbster/GI07/week5/
답변1
일반적으로 디렉토리의 파일을 나열하는 표준 방법이 없기 때문에 웹사이트를 디렉토리로 탐색하는 것은 불가능합니다. 사실 웹에는 디렉토리에 대한 개념조차 없습니다. http://foo/bar/wibble
디렉토리에서 호출된 파일을 서비스할지 여부는 서버를 어떻게 설계했는지에 대한 문제이지만 반드시 그럴 필요는 없습니다. 슬래시 수에 따라 내용이 다를 수도 있으며(예: 다른 내용을 반환함) 이는 파일 경로 트리로 표시할 수 없습니다.wibble
bar
http://foo/bar/wibble
http://foo/bar/wibble/
http://foo/bar//wibble
여기에서 다른 사람들이 주장하는 것과는 달리예원격 파일은 로컬 파일과 마찬가지로 찾아볼 수 있습니다. 예를 들어, cd
FTP 사이트가 설치되어 있는 경우 다음과 같은 방법으로 사이트에 들어갈 수 있습니다.마이크 퓨전OS X에서는gvfs 설치Gnome을 사용하는 Linux에서는컬 파일 시스템Linux 또는 OS X에서AVFS. 이 모든 작업은퓨즈, 기본적으로 모든 것을 디렉토리 트리로 노출하는 프레임워크입니다.
그러나 웹 서버에는 실제로 그러한 트리 구조가 없기 때문에 웹 서버를 디렉터리 트리로 노출하는 일반적인 방법은 없습니다. 또한 동일한 URL에 대한 요청은 클라이언트의 언어 기본 설정, 사용자 에이전트, 쿠키 등에 따라 다른 콘텐츠를 반환할 수 있습니다.
특정 URL을 방문하면 원하는 서버가 디렉토리 목록처럼 보이는 페이지를 제공합니다. 하지만 페이지의 형식은 서버에서 지정되며 브라우저에서 FTP 사이트에 접속할 때의 형식과 다릅니다. 원칙적으로 클라이언트는 이를 구문 분석하고 디렉토리 목록을 생성할 수 있습니다.httpfs이를 수행할 수 있지만 서버 사이트에 있는 디렉터리 목록의 출력 형식을 특정 방식으로만 지원합니다. 실제로 HTTP를 통해 디렉토리 트리에 액세스하기 위한 표준 프로토콜이 있습니다. 네트워크 DAV- 하지만 자주 사용되지는 않습니다. 나는 Apache의 표준 디렉토리 목록 구문 분석 구현에 대해 알지 못합니다. 이것이 귀하의 사이트에서 제공하는 서비스라고 가정합니다.
명령줄에서 파일을 다운로드하려면 다음을 사용할 수 있습니다.curl
. 디렉토리의 모든 파일을 다운로드하려면 다음을 사용할 수 있습니다.얻다(OSX에는 포함되어 있지 않지만 패키지 관리자를 통해 설치할 수 있습니다):
wget -r -np -l1 http://www0.cs.ucl.ac.uk/staff/M.Herbster/GI07/week5/
wget -r -np http://…
유사 cp -r http://… .
하지만 재귀는 다르게 작동합니다. cp
재귀적으로 작동하는 하위 디렉터리를 포함하여 해당 파일을 열거하여 디렉터리를 복사하고 동일한 내용의 파일을 생성하여 일반 파일을 복사합니다. 웹에서는 wget
HTML 페이지의 모든 링크를 따라가면 디렉토리와 일반 파일 사이에 차이가 없습니다 . 이 옵션은 재귀 복사를 -r
지시 하고 "위"를 가리키는 링크를 따르지 않도록 지시합니다. 이것은 텍스트의 문제입니다. 대상의 시작 부분에 있는 링크만 따릅니다 (동일한 결과를 얻는 상대 링크에 대한 규칙 사용). 이 옵션은 한 수준 이후에 반복을 중지하도록 지시하는 추가 안전 조치입니다(즉, 지정된 URL의 HTML 파일에 대한 링크를 따라간 다음 중지함). 이는 필수는 아니지만 눈치 채지 못했기 때문에 피하는 것이 좋습니다. 추가 링크를 사용하면 원래 예상했던 것보다 훨씬 더 많은 자료를 제공하는 반복 다운로드가 발생할 수 있습니다.wget
-np
http://www0.cs.ucl.ac.uk/staff/M.Herbster/GI07/week5/
-l1
답변2
좋다이름 표시하기그는 답장에서 당신이 할 수 없다고 언급했습니다.CD웹사이트를 입력하세요.CD다른 명령 없이 컴퓨터에 원격으로 액세스하는 경우 이 명령은 로컬 컴퓨터의 디렉터리에서만 작동합니다.SSH. 이런 명령어가 필요해요얻다또는곱슬인터넷에서 무언가를 다운로드하세요. 와는 별개로곱슬사용할 수 있는 예얻다이와 같이:
파일 다운로드
wget http://www0.cs.ucl.ac.uk/staff/M.Herbster/GI07/week5/dtrain123.dat
이 디렉터리에서 특정 파일 확장자를 가진 파일을 다운로드합니다.
wget -rl1 -A .dat http://www0.cs.ucl.ac.uk/staff/M.Herbster/GI07/week5/
이 디렉터리의 모든 파일을 다운로드합니다.
wget -r -np -l1 http://www0.cs.ucl.ac.uk/staff/M.Herbster/GI07/week5/
명령 옵션 설명:
-r 재귀 다운로드(주의하세요!)
- 허용되는 파일 확장자의 쉼표로 구분된 목록
-l 최대 재귀 깊이, 'inf' 또는 '0'은 무제한을 의미합니다.
-np 상위 디렉토리 생략
사용된 URL은 귀하가 언급한 URL을 나타냅니다.