Wie werden bereits vorhandene Dateien beim Herunterladen mit curl übersprungen?

7

Ich möchte curl einen Link herunterladen, aber ich möchte, dass Dateien, die bereits existieren, übersprungen werden. Im Moment wird die Codezeile, die ich habe, weiterhin überschreiben, egal was:

%Vor%

Wie kann das erreicht werden?

    
thevoipman 08.08.2012, 01:11
quelle

4 Antworten

17

Sie könnten Ihren Aufruf einfach auf curl in einem if -Block setzen:

%Vor%

Beachten Sie auch, dass in Ihrem Beispiel $url in einfachen Anführungszeichen steht, was nicht Ihren Vorstellungen entspricht. Vergleichen Sie:

%Vor%

An:

%Vor%

Außerdem hat curl eine Option --silent , die in Skripten nützlich sein kann.

    
Bob the Angry Coder 08.08.2012, 01:25
quelle
4

Verwenden Sie stattdessen wget mit --no-clobber :

  

-nc , --no-clobber : Überspringen Sie Downloads, die in vorhandene Dateien heruntergeladen werden.

Beispiel:

%Vor%     
evil otto 08.08.2012 01:15
quelle
1

Das curl unterstützt möglicherweise das Überspringen der Dateien, wenn Sie es mit -O und -J verwenden, aber sein Verhalten ist inkonsistent.

Das -J ( --remote-header-name ) teilt der Option -O ( --remote-name ) grundsätzlich mit, dass sie den vom Server angegebenen Content-Disposition -Dateinamen verwendet, anstatt einen Dateinamen aus der URL zu extrahieren. Auf diese Weise weiß der curl nicht wirklich, welchen Dateinamen der Server zurückgibt, sodass er die vorhandene Datei aus Sicherheitsgründen ignorieren kann.

Quelle: Re: -J "Weigerung, zu überschreiben ..."

Zum Beispiel:

%Vor%

Wie bereits erwähnt, ist sein Verhalten jedoch nicht vorhersehbar und funktioniert nicht für alle Dateien.

    
kenorb 17.06.2016 02:02
quelle
1

Sie können die Option curl -C - verwenden. Diese Option wird verwendet, um einen fehlerhaften Download fortzusetzen, überspringt den Download jedoch, wenn die Datei bereits vollständig ist. Beachten Sie, dass das Argument für -C ein einzelner Bindestrich ist. Ein Nachteil könnte sein, dass curle immer noch kurz mit dem Remote-Server Kontakt aufnimmt, um nach der Dateigröße zu fragen.

    
Wolfgang 10.11.2017 16:14
quelle

Tags und Links