Entpacken Sie einen Teilordner der TAR-Datei von der URL

Entpacken Sie einen Teilordner der TAR-Datei von der URL

Ich habe eine URL, die zu einer großen Tar-Datei (ca. 200 GB) führt. Ich muss einen Ordner dieser Datei in meinem Linux-System extrahieren. Aufgrund der großen Dateigröße möchte ich nicht die gesamte Datei auf mein Linux-System herunterladen. Außerdem habe ich keinen SHH-Zugriff auf das Quellsystem.

Gibt es eine Möglichkeit, nur einen kleinen Teil der Tar.gz-Datei zu extrahieren?

Antwort1

Um nur ein bestimmtes Verzeichnis zu extrahieren, müssen Sie die genauen Dateinamen kennen. Platzhalter funktionieren bei tar nicht. und der Befehl sieht so aus

curl -s -o - <URL>|tar xz /path/file1 /path/file2  ...

Antwort2

Das tarFormat erlaubt es nicht, eine Datei (oder ein Verzeichnis) direkt anzusprechen - dies liegt daran, dassTAffearSchnitte sollten sequenziell von einem Sicherungsmedium gelesen werden.

Was Sie natürlich tun können, ist, den Prozess zu stoppen, nachdem die relevanten Teile extrahiert wurden. Sie würden etwas in der Art tun wie

curl -o - 'http://your/url' | tar -xvz your_filter

Dadurch wird die Datei von Anfang an heruntergeladen und die relevanten Teile werden extrahiert. Wenn Sie alles haben, was Sie benötigen, können Sie den Vorgang abbrechen, um das Herunterladen des Rests zu vermeiden.

Je nachdem, welchen Zugriff Sie auf den Quellserver haben, könnten Sie sogar noch bessere Ergebnisse erzielen: Haben Sie PHP ohne Speichermodus? Wenn ja, können Sie das, was Sie brauchen, über shell_execund Freunde extrahieren.

verwandte Informationen