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