Ich lade oft Tarballs mit wget von sourceforge.net herunter.
Die heruntergeladenen Dateien werden dann benannt, z SQliteManager-1.2.4.tar.gz?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F&ts=1305711521&use_mirror=switch
Wenn ich es versuche
tar xzf SQliteManager-1.2.4.tar.gz\?r\=http\:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F\&ts\=1305711521\&use_mirror\=switch
Ich erhalte folgende Fehlermeldung:
tar (child): Cannot connect to SQliteManager-1.2.4.tar.gz?r=http: resolve failed
gzip: stdin: unexpected end of file
tar: Child returned status 128
tar: Error is not recoverable: exiting now
Nach dem Umbenennen der Datei foo.tar.gz
funktioniert die Extraktion einwandfrei.
Gibt es eine Möglichkeit, dass ich nicht jedes Mal gezwungen bin, die Zieldatei umzubenennen, bevor ich sie extrahiere?
--force-local
dies vor demf
... hinzugefügt werden muss. Als ich dies zum ersten Mal versuchte, gab es eine Fehlermeldung darüber, dass es keine solche Datei wie gibt--force-local
. Vielleicht ist das zu "no duh", aber ich habe den Fehler, den ich gemacht habe, erst 5 Minuten später erkannt.f
ein Argument, das die Tarfile ist. Sie können nicht--force-local
zwischen dasf
und sein Argument setzen, aber das ist Standard für alle Programme, nicht nurtar
und nicht nur-f
. Sie können setzen--force-local
nachf
, solange es ist auch nach dem Argument zuf
.tar -cvzf ...
und denke nicht einmal darüber nach, was jede Flagge wirklich 99% der Zeit macht - es ist nur reflexartig, dass ich so einen tar.gz mache.tar zxvf C:\Users\jdoe\Documents\tarfile.tgz --force-local
Wenn Sie mit herunterladen
wget
, geben Sie den Namen der Ausgabedatei mit der-O
Option an.Dies bewirkt, dass die Datei unter dem angegebenen Dateinamen gespeichert wird, und erspart Ihnen die Mühe, sie umzubenennen. Und nein, Sie sind nicht der Einzige, der wünscht, Sourcefourge wäre nicht so dumm, Dateien mit den angehängten URL-Parametern zu verteilen.
quelle
wget
. Verwenden Sie das--content-disposition
Flag, um mit dem vom Server angegebenen Dateinamen zu speichern (achten Sie jedoch auf die Auswirkungen auf die Sicherheit, da SourceForge dann in einen beliebigen Dateinamen schreiben kann).Herunterladen mit
Auf diese Weise speichert wget mit den richtigen Dateinamen. Standardmäßig wird die letzte Komponente in der URL verwendet
Zum Beispiel
quelle
Wie oben zitiert, macht die
:
(Spalte)tar
eine Remote-Datei. Wir müssen also die Tatsache durchsetzen, dass es lokal ist.Scheitern
Lösung
Erklären Sie die Tatsache, dass es sich um eine lokale Datei handelt, indem Sie sie anhängen
./
(aktuelles Verzeichnis) und korrekt zitieren:Die Warnung ist darauf zurückzuführen, dass ich sie im Quellverzeichnis erstelle.
quelle
Für bereits heruntergeladene Dateien sollte dies funktionieren:
quelle