Jeśli używasz rozszerzenia nawiasów klamrowych wget
, możesz z łatwością pobierać obrazy o numerach sekwencyjnych:
$ wget 'http://www.iqandreas.com/sample-images/100-100-color/'{90..110}'.jpg'
Pobiera pierwsze 10 plików ponumerowanych, 90.jpg
aby w 99.jpg
porządku, ale 100.jpg
potem zwraca błąd 404: Nie znaleziono pliku (mam tylko 100 obrazów zapisanych na serwerze). Te nieistniejące pliki stają się bardziej „problemem”, jeśli użyjesz większego zakresu, np. W {00..200}
przypadku 100 nieistniejących plików wydłuży to czas wykonywania skryptu, a nawet może stanowić niewielkie obciążenie (lub przynajmniej irytację) dla serwer.
Czy jest jakiś sposób na wget
zatrzymanie po otrzymaniu pierwszego błędu 404? (lub jeszcze lepiej, dwa z rzędu, w przypadku braku pliku w zakresie z innego powodu) Odpowiedź nie wymaga użycia interpretacji nawiasów; pętle też są w porządku.
1, 2 or even n failures
nie jest właściwy sposób, gdy znasz[begin .. end]
indeksy. Dlaczego miałbyś określać[1..200]
zasięg, skoro wiesz, że jest tam tylko 100 zdjęć[1..100]
. Myślę, że możesz wypróbować GNUparallel
dla jednoczesnych żądań, aby przyspieszyć ten proces.