GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Aktualisieren einer einzelnen Datei in einem komprimierten tar

Wenn die Datei, die Sie aktualisieren möchten, eine Textdatei ist. Dann können Sie vim verwenden editor direkt, um den Tarball zu öffnen, der die Datei enthält, und sie zu öffnen, genau wie das Öffnen eines Ordners mit dem vim-Editor. Ändern Sie dann die Datei, speichern Sie sie und beenden Sie sie.

Wenn die Datei jedoch eine Binärdatei ist. Ich habe keine Ahnung von der Lösung.


Nun, ich habe die Antwort gefunden.

Sie können tar -u nicht verwenden mit gezipptem Archiv. Also die Lösung, die ich verwendet habe, war die folgende. Beachten Sie, dass ich z.jar verschoben habe Datei in einen Ordner, den ich im aktuellen Verzeichnis mit dem Namen application/x/y erstellt habe zu diesem Zweck.

gzip -d application.tar.gz
tar -uf application.tar application/x/y/z.jar
gzip application.tar

Als ich eine tar -tf application.tar gemacht habe (nach dem Update, vor dem gzip) wurde es richtig angezeigt.


In meinem Fall musste ich die Datei löschen und dann die neue Datei mit den folgenden Schritten hinzufügen:

meine tar-Datei

file.tar
└── foo.json
└── bar.json
└── dir
    └── zoo.json

und ich wollte nur foo.json ändern/aktualisieren Datei ohne Extrahieren und Neuerstellen der gesamten TAR-Datei file.tar , Hier sind die Befehle:

tar -x -f file.tar foo.json # extract only foo.json file to my current location
# now modify the file foo.json as you want ...
tar --delete -f file.tar foo.json # delete the foo.json file from the file.tar
tar -uf file.tar foo.json # add the specific file foo.json to file.tar

komprimierte Datei:

wenn es sich um eine komprimierte Datei handelt, wie file.tar.gz müssen Sie die tar-Datei aus der komprimierten Datei (in diesem Beispiel gzip) mithilfe von gunzip file.tar.gz extrahieren die für Sie die Tar-Datei file.tar erstellt . dann können Sie das Oben tun Schritte.

am Ende Sie sollten die Tar-Datei erneut komprimieren, indem Sie gzip file.tar verwenden die für Sie eine komprimierte Datei mit dem Namen file.tar.gz erstellt

Unterverzeichnisse:

Um mit Unterverzeichnissen umgehen zu können, müssen Sie die gleiche Struktur auch im Dateisystem beibehalten:

tar -x -f file.tar dir/zoo.json
# now modify the file dir/zoo.json as you want ...
tar --delete -f file.tar dir/zoo.json
tar -uf file.tar dir/zoo.json

Dateistruktur anzeigen:

indem Sie den less verwenden Befehl können Sie die Struktur der Datei anzeigen:

less file.tar

drwxr-xr-x root/root         0 2020-10-18 11:43 foo.json
drwxr-xr-x root/root         0 2020-10-18 11:43 bar.json
drwxr-xr-x root/root         0 2020-10-18 11:43 dir/zoo.json


Linux
  1. Öffnen einer .tar.gz-Datei mit einem einzigen Befehl

  2. So extrahieren Sie die Datei filename.tar.gz

  3. Ungültige komprimierte Daten – Format verletzt?

  4. tar -C mit einem Wildcard-Dateimuster

  5. Extrahieren Sie eine einzelne Datei aus einer riesigen TGZ-Datei

So extrahieren (entpacken) Sie die Tar Gz-Datei

So extrahieren (entpacken) Sie die tar.xz-Datei

So erstellen Sie eine Tar-Gz-Datei

So erstellen Sie eine Tar gz-Datei

Extrahieren Sie die tar.gz-Datei unter Linux

Komprimieren Sie jede Datei in einem Verzeichnis in eine eigene komprimierte Datei