wget “no such address”-o “test.html”을 쓰면 먼저 test.html을 만들고 실패 할 경우 비워 둡니다. 그러나 -o를 사용하지 않으면 다운로드가 성공했는지 확인한 후 기다렸다가 파일을 작성합니다.
후자의 동작을 -o에도 적용하고 싶습니다. 가능합니까?
답변
wget
URL을 찾을 수 없으면 0이 아닌 종료 상태를 반환하므로 실패시 remove 명령을 추가 할 수 있습니다.
wget "url" -O file || rm -f file
또는 임시 파일을 만들어 성공할 때만 이동하십시오.
wget "url" -O /tmp/wget && mv /tmp/wget file
두 번째는 실패시 기존 파일을 삭제하지 않는 이점이 있지만 man tempfile
여러 인스턴스를 병렬로 실행하는 경우 고유 한 임시 이름 (참조 )을 사용해야합니다.
답변
주석에 쓰여 있듯이 오류와 상관없이 항상 파일에 쓰는 wget -O
쉘 리디렉션과 비슷 합니다.
curl -f
대신 사용할 수 있습니다 .
curl -f http://nonexistent/file.jpg -o localfile.jpg
파일을 가져 오는 중에 오류가 발생하면 로컬 파일을 건드리지 않습니다.
답변
올바른 구문은
wget "url" -O file
대문자 O를 주목하십시오. -o 옵션은 wget에게 로그 파일 을 작성 하도록 지시 합니다. 따라서 실패시에도 항상 기록됩니다.
답변
도움말 doc (wget -h)에 따르면 –spider 옵션을 사용하여 다운로드 (버전 1.14)를 건너 뛸 수 있습니다.
Download:
-S, --server-response print server response.
--spider don't download anything.