![Wie verarbeitet das CentOS/Linux-ZIP-Dienstprogramm Dateien, die während der Komprimierung geändert werden?](https://rvso.com/image/1303475/Wie%20verarbeitet%20das%20CentOS%2FLinux-ZIP-Dienstprogramm%20Dateien%2C%20die%20w%C3%A4hrend%20der%20Komprimierung%20ge%C3%A4ndert%20werden%3F.png)
Die Frage sagt alles: Ich habe ein Verzeichnis, das ich mit „zip -rv“ komprimieren möchte, aber die Dateien ändern sich ständig (Basissicherung der Postgres-Datenbank). Wird Zip dadurch unterbrochen oder wird es mit einer Warnung fortgesetzt, wie dies bei rsync der Fall ist?
Tar schlägt fehl, wenn es eine Datei findet, die während der Komprimierung geändert wurde. Ich habe beim Generieren von Dateiänderungen einige Test-Zips für das Verzeichnis ausgeführt und keine Fehler festgestellt, aber das liegt vielleicht daran, dass ich Glück hatte und Zip die geänderten Dateien bereits komprimiert hatte bzw. noch nicht erreicht hatte. Mein Plan B an diesem Punkt ist, das geänderte Verzeichnis per Rsync in einen anderen Ordner zu verschieben und dann den statischen Speicherort hochzukomprimieren, aber das würde doppelt so viel Platz beanspruchen, und das möchte ich nach Möglichkeit vermeiden. Wenn Zip Dateiänderungen während der Komprimierung nicht verarbeiten kann, gibt es dann ein Dienstprogramm, das das kann?
Das Betriebssystem ist CentOS 6, fwiw.
Antwort1
Es verarbeitet sie überhaupt nicht. Zip liest den gesamten Verzeichnisbaum, wenn es mit der Erstellung des Archivs beginnt.
- Wenn während des ZIP-Vorgangs eine Datei gelöscht wird, erhalten Sie eine Warnmeldung.
- Wenn während des Zip-Vorgangs eine Datei erstellt wird, ist diese nicht im Archiv enthalten.WennSie wurde in einem Verzeichnis erstellt, das bereits gelesen wurde. Wenn die Datei erstellt wird, bevor Zip den Inhalt dieses Verzeichnisses liest, befindet sie sich im Archiv.
- Wenn eine Datei während des ZIP-Vorgangs geändert wird, bleibt ihr Inhalt derselbe wie beim Hinzufügen zum Archiv. Dateien werden gelesen, wenn sie zum Archiv hinzugefügt werden.