2017-09-25 24 views
0

J'ai beaucoup de fichiers sur nos serveurs que nous comprenons avec un filtre que seuls les fichiers de plus de x jours seront compressés.Comment conserver l'horodatage de la compression zip post fichier original

La commande zip compresse l'original, crée un fichier filename.zip et supprime l'original. Cela a un petit problème que l'horodatage change puisque le travail de compression s'exécute après x jours. Par conséquent, lorsque nous exécutons des fichiers pour supprimer des fichiers plus anciens (qui sont maintenant des fichiers zip), tous les fichiers ne sont pas supprimés car l'horodatage est passé du fichier d'origine au fichier compressé.

Je voudrais ajouter une condition où, lors du zipping, je veux que l'horodatage original du fichier soit conservé par l'archive zip même s'il est exécuté plus tard.

Une façon de le faire serait de - timestamp de chaque fichier original avec une commande date - Compresser l'original, retirez la originale - Utilisation et insérez l'horodatage stocké précédemment dans le nouveau fichier zip en utilisant « contact "

Cependant, si quelqu'un peut suggérer une solution plus simple, ce serait génial.

Merci.

Répondre

0

Certains vieux fichier que j'ai eu:

$ ls -l foo 
-rw-r--r-- 1 james james 120 Sep 5 07:28 foo 

Zip et redate:

$ zip foo.zip foo && touch -d "$(date -R -r foo)" foo.zip 

Check it out:

$ ls -l foo.zip 
-rw-r--r-- 1 james james 120 Sep 5 07:28 foo.zip 

Retirez l'original:

$ rm -i foo