
사이트를 미러링하려고 하는데 연결된 CSS에 다음 URL이 있습니다.http://127.0.0.1:2368/assets/css/screen.css?v=c44dc08367
wget을 사용하여 사이트를 다운로드하면 CSS 파일이 파일 이름으로 저장됩니다.screen.css?v=c44dc08367
플래그를 사용해 보았는데 --adjust-extension
파일이 다음과 같이 저장됩니다. wget을 사용하여 screen.css?v=c44dc08367.css
올바른 방법으로 저장하는 것이 가능합니까 screen.css
?
저는 darwin12.5.0에 구축된 GNU Wget 1.14를 사용하고 있습니다.
편집: 전체 사이트를 미러링하므로 파일 이름을 지정할 수 없으므로 실제 명령은 다음과 같습니다. CSS 링크는 페이지 내부에 있습니다(wget에 의해 자동으로 가져옴).
wget \
--recursive \ # follow links to download entire site
--page-requisites \ # grab everything: css / inlined images
--no-parent \ # don't go to parent level
--directory-prefix static \# download contents to static/ folder
--no-host-directories \ # don't create domain named folder
--adjust-extension \
http://127.0.0.1:2368/
답변1
불행하게도 wget은 사용자가 지시하지 않는 한 다운로드하려는 항목에 대해 어떠한 가정도 하지 않습니다. 파일이 이미지, 문서, 압축 파일 등인지는 상관하지 않습니다.
파일은 URL이 끝나는 대로 저장됩니다. 즉, 마지막 슬래시부터 URL 끝까지의 모든 항목이 저장됩니다. 귀하의 경우에는 .css?v=c44dc08367입니다. 실제 파일 확장자(.css) 뒤의 부분이 URL에 포함되어 있지만 이는 HTTP 쿼리 매개변수입니다. 그러나 wget의 경우 출력 파일 이름을 결정합니다.
wget에 대한 출력 파일 이름을 지정하려면 -O(대문자 O) 옵션을 추가하세요.
wget http://127.0.0.1:2368/assets/css/screen.css?v=c44dc08367 -O screen.css
마지막으로 적절한 파일 이름이 설정될 수 있는 --content-disposition 옵션이 있습니다. 하지만 이는 전적으로 다운로드하는 서버가 올바른 헤더 정보를 보내는지에 따라 달라집니다.