Za pomocą wget
polecenia, jak mogę / polecam nadpisywać mój plik lokalny za każdym razem, niezależnie od tego, ile razy wywołuję.
Powiedzmy, że chcę pobrać plik z lokalizacji: http: //server/folder/file1.html
Tutaj, ilekroć mówię wget http://server/folder/file1.html
, chcę, file1.html
aby zostało to nadpisane w moim systemie lokalnym, niezależnie od czasu, kiedy jest zmieniane, już pobrane itp. Moim celem / przypadkiem użycia jest to, że kiedy wywołuję wget, jestem bardzo pewien, że chcę aby zastąpić / zastąpić istniejący plik.
Wypróbowałem następujące opcje, ale każda z nich jest przeznaczona / przeznaczona do innego celu.
- -nc => --no-clobber
- -N => Włącz znaczniki czasu
- -r => Włącz pobieranie rekurencyjne
wget
poleceniu, która by to zrobiła bez mojego wyraźnego użycia-O filename
?Ta opcja działa
informacje
źródło
Użyć
curl
zamiast tego?źródło
wget
icurl
? Jestem pewien, że każde polecenie jest przeznaczone do określonego celu.Nie sądzę, że możesz to zrobić, chyba że ściągniesz również katalogi (więc przekaż flagę -x). Jeśli wiesz, co to jest plik, możesz użyć -O nazwa pliku, więc na przykład:
wget http://yourdomain.com/index.html -O index.html
źródło
Untried: może będziesz w stanie pracować
wget -r --level=0
.Inna możliwość:
curl -O
zastępuje (ale używa innego sposobu wyboru nazwy pliku, co może, ale nie musi mieć znaczenia).źródło
wget
linia naprawdę nie robi właściwej rzeczy, ponieważ tworzy hierarchię podkatalogów.curl -O
z drugiej strony poprawnie pobiera plik, zastępując istniejące kopie.Dlaczego nie umieścić małego skryptu wokół wget w swoim skrypcie?
Skrypt może przenieść wszystkie pliki do tymczasowej lokalizacji, a następnie wget zdalne pliki / strony internetowe.
Po sukcesie usuń pliki w tymczasowej lokalizacji. W przypadku awarii przenieś pliki z powrotem i zgłoszenie błędu.
Nie ma prostego sposobu na zrobienie tego, co chcesz, za pomocą tylko wget, chyba że znasz konkretną nazwę wszystkich plików, w którym to przypadku opcja -O pozwoli ci wymusić nazwę pobranego pliku.
źródło