목록에서 파일 다운로드


130

wget다른 자동 방법을 사용하여 파일 (텍스트 파일에 나열된)을 어떻게 다운로드 할 수 있습니까?

샘플 파일 목록 :

www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf

답변:


227

wget에는 이것을위한 내장 플래그가 wget -i your_list 있습니다 : 당신은 이런 종류의 것을 읽을 수 있습니다.man wget


링크 2를 건너 뛰려면 @aureianimus 어떻게하면됩니까?
alhelal

이 솔루션은 저에게 효과적이었습니다. 병렬로 다운로드하지 않고 순차적으로 다운로드하는 것에 만족했습니다.
asiby

85

그것들과 병행하십시오

cat urlfile | parallel --gnu "wget {}"

기본적으로 코어 수만큼 프로세스를 실행합니다. 병렬 후에 "-j 20"을 추가하여 프로세스를 신속하게 풀다운하려면 10 배 더 늘릴 수 있습니다.


1
나는 그것을 위해 일할 수 없다. 나는 어떤 PROC wget을위한 에코 전환, 양산 아무것도 출력하지 않습니다 표시되지 않습니다
야쿱 Bochenski을

이전의 우분투들 중 일부는이 공간에 멍청한 결함이 있습니다. stackoverflow.com/questions/16448887/…
meawoppl

2
'코어 수만큼 프로세스를 실행'한다는 점에 유의하십시오. 네트워크 대역폭은 제한 요소가 될 것입니다.
Wilf 2016 년

2
정말 달려 있습니다. 대부분의 전송 시간이 핸드 셰이크 / TCP 왕복이기 때문에 많은 수의 작은 파일의 경우 거의 10 배 더 빠를 수 있습니다. 또한 여러 개의 작은 호스트에서 다운로드하는 경우 때때로 연결 당 대역폭이 제한되어 문제가 발생할 수 있습니다.
meawoppl

2
다른 호스트 이름으로 상대 URL (호스트 이름이없는 자원 ID) 목록을 사용하려는 경우 매우 유용합니다 (예 : cat urlfile | 병렬 --gnu "wget example1.com {}"및 cat urlfile | 병렬 --gnu "wget example2.com {}"
Mauricio Sánchez


9

parallel입력 파일을 소스로 사용 하는 내장 플래그 --arg-file( -a)가 있으므로 피할 수 있습니다 cat |. 당신이 사용할 수있는

parallel --gnu -a urlfile wget

아니면 간단히 parallel --gnu wget < urlfile


5
awk '{print "http://" $0;}' list.txt | xargs -l1 wget

여기서 list.txt는 목록 파일입니다.


4

Florian Diesch의 답변을 보았습니다.

bqc명령에 매개 변수 를 포함시켜 작동하게했습니다 .

xargs -i wget -bqc 'http://{}' < download.txt

모든 다운로드는 백그라운드에서 병렬로 시작되었습니다.

  • -b: 배경. 시작 직후 배경으로 이동
  • -q: 조용합니다. wget 출력 끄기
  • -c: 계속하다. 부분적으로 다운로드 된 파일 받기

1

링크 파일 links.txt

모든 링크 파일을 다운로드하는 명령

cat links.txt | wget -i

3
작동하지 않습니다. wget -i links.txt올바른 명령입니다.
Hery

아니 이것은 올바른 명령이 아닙니다. 올바른 명령은 다음과 같습니다 : "cat links.txt | wget -i"
DreamCoder

0

방금 이것을 테스트했습니다.

xargs -a download_file -L1 wget

그것은 나를 위해 작동합니다. txt 파일 내부의 링크는 별도의 줄에 있어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.