Gibt es eine Möglichkeit, eine Datei in einem tar.gz-Archiv hinzuzufügen/zu aktualisieren? Grundsätzlich habe ich ein Archiv, das eine Datei unter /data/data/com.myapp.backup/./files/settings.txt
enthält und ich möchte diese Datei aus dem Archiv ziehen (bereits fertig) und sie zurück in das Archiv schieben, sobald die Bearbeitung abgeschlossen ist. Wie kann ich das erreichen? Ist es problematisch wegen der .
im Pfad?
Akzeptierte Antwort:
Das tar-Dateiformat ist nur eine Reihe von Dateien, die mit einigen Headern verkettet sind. Es ist keine sehr komplizierte Aufgabe, es auseinander zu reißen, Ihren Inhalt hineinzulegen und es wieder zusammenzusetzen. Abgesehen davon beschrieb Jander, dass tar als Programm nicht über die Dienstprogrammfunktionen verfügt, um dies zu tun, und dass es zusätzliche Komplikationen mit der Komprimierung gibt, die sowohl vor als auch nach einer Änderung durchgeführt werden muss.
Es gibt jedoch Werkzeuge für den Job! Es gibt mindestens zwei Systeme, mit denen Sie ein komprimiertes Tar-Archiv per Loopback in einen Ordner einhängen und dann Ihre Änderungen im Dateisystem vornehmen können. Wenn Sie fertig sind, heben Sie die Bereitstellung des Ordners auf und Ihr komprimiertes Archiv ist einsatzbereit.
Die eine erste Option wäre das archivemount-Projekt für FUSE. Hier ist ein Tutorial dazu. Ihr System verfügt wahrscheinlich bereits über FUSE, und wenn dies nicht der Fall ist, sollte Ihre Distribution eine Option dafür haben.
Die andere Option sind Tarife. Es ist einfacher zu verwenden, aber ich habe gehört, dass es einige Probleme mit der Beschädigung von bzip2-Archiven hat, also sollten Sie das zuerst ziemlich gründlich testen.