To jest najprostszy przykład uruchamiania wget:
wget http://www.example.com/images/misc/pic.png
ale jak sprawić, by wget pomijał pobieranie, jeśli pic.png
jest już dostępny?
To jest najprostszy przykład uruchamiania wget:
wget http://www.example.com/images/misc/pic.png
ale jak sprawić, by wget pomijał pobieranie, jeśli pic.png
jest już dostępny?
Odpowiedzi:
Wypróbuj następujący parametr:
-nc
,--no-clobber
: pomiń pobieranie, które pobierałoby do istniejących plików.
Przykładowe użycie:
wget -nc http://example.com/pic.png
[ ! -e "$(basename $URL)" ] && wget $URL
--recursive
opcji.
-nc
, --no-clobber
Opcja ta nie jest najlepszym rozwiązaniem, ponieważ nowe pliki nie zostaną pobrane. -N
Zamiast tego należy użyć, który pobierze i nadpisze plik tylko wtedy, gdy serwer ma nowszą wersję, więc poprawna odpowiedź to:
wget -N http://www.example.com/images/misc/pic.png
Następnie uruchomienie Wget z opcją -N, z lub bez
-r
lub-p
, decyzja o tym, czy pobrać nowszą kopię pliku, zależy od lokalnego i zdalnego znacznika czasu i wielkości pliku.-nc
nie można podać w tym samym czasie co-N
.
-N
,--timestamping
: Włącz oznaczanie czasu.
-N
może się nie powieść, a wget zawsze pobierze ponownie. Więc czasami -nc
jest lepsze rozwiązanie.
wget
będzie narzekał Last-modified header missing
; jest to dokładnie nakreślona sytuacja.
Podczas uruchamiania Wget z -r
lub -p
, ale bez -N
, -nd
lub -nc
, ponowne pobranie pliku spowoduje, że nowa kopia po prostu nadpisze stary.
Tak więc dodanie -nc
zapobiegnie takiemu zachowaniu, zamiast tego spowoduje zachowanie oryginalnej wersji i zignorowanie wszelkich nowszych kopii na serwerze.
Odpowiedź, której szukałem, to https://unix.stackexchange.com/a/9557/114862 .
Użycie
-c
flagi, gdy plik lokalny ma większy lub równy rozmiar od wersji serwera, pozwoli uniknąć ponownego pobierania.
wget -i filelist.txt -c
wznowi nieudane pobieranie listy plików.
-nc
nie uniemożliwia wysłania żądania HTTP i późniejszego pobrania pliku. Po prostu nie robi nic po pobraniu pliku, jeśli plik został już w pełni pobrany. Czy istnieje sposób, aby zapobiec wysyłaniu żądania HTTP, jeśli plik już istnieje? stackoverflow.com/questions/33203898/...