wget
Wie kann ich mit dem Befehl zulassen / anweisen, meine lokale Datei jedes Mal zu überschreiben, unabhängig davon, wie oft ich sie aufrufe?
Angenommen , ich möchte eine Datei vom Speicherort herunterladen: http: //server/folder/file1.html
Wenn ich hier sage wget http://server/folder/file1.html
, möchte ich, dass dies file1.html
in meinem lokalen System überschrieben wird, unabhängig davon , wann es geändert, bereits heruntergeladen usw. wird. Meine Absicht / mein Anwendungsfall hier ist, dass ich sehr sicher bin, wenn ich wget anrufe um die vorhandene Datei zu ersetzen / zu überschreiben.
Ich habe die folgenden Optionen ausprobiert, aber jede Option ist für einen anderen Zweck vorgesehen.
- -nc => --no-clobber
- -N => Zeitstempel einschalten
- -r => Aktiviert das rekursive Abrufen
wget
Befehl, die dies tut, ohne dass ich explizit mit-O filename
?Diese Option funktioniert
die Info
quelle
Verwenden Sie
curl
stattdessen?quelle
wget
undcurl
? Ich bin sicher, dass jeder Befehl für einen bestimmten Zweck bestimmt ist.Ich glaube nicht, dass Sie dies tun können, wenn Sie nicht auch die Verzeichnisse herunterladen (übergeben Sie also das Flag -x). Wenn Sie wissen, was die Datei ist, können Sie -O Dateiname verwenden, zum Beispiel:
wget http://yourdomain.com/index.html -O index.html
quelle
Ungetrocknet: Vielleicht kannst du damit arbeiten
wget -r --level=0
.Eine andere Möglichkeit:
curl -O
Überschreiben (es wird jedoch eine andere Methode zur Auswahl des Dateinamens verwendet, die für Sie möglicherweise von Bedeutung ist oder nicht).quelle
wget
Zeile macht nicht wirklich das Richtige, weil sie eine Hierarchie von Unterverzeichnissen erstellt.curl -O
Auf der anderen Seite wird die Datei korrekt heruntergeladen und vorhandene Kopien überschrieben.Warum nicht einen kleinen Wrapper um das Wget in Ihrem Skript legen?
Das Skript kann alle Dateien an einen temporären Speicherort verschieben und dann die entfernten Dateien / Webseiten abrufen.
Bei Erfolg löschen Sie die Dateien am temporären Speicherort. Bei einem Fehler verschieben Sie die Dateien zurück und lösen einen Fehler aus.
Es gibt keine einfache Möglichkeit, mit wget das zu tun, was Sie möchten, es sei denn, Sie kennen den Namen aller Dateien genau. In diesem Fall können Sie mit der Option -O den Dateinamen der heruntergeladenen Datei erzwingen.
quelle