J'essaie de compresser un répertoire sur
/home/cyrus/sql
Et je voulais changer le répertoire de travail lors du zip du dossier:
/ $ zip -b /home/cyrus sql.zip /home/cyrus/sql
Mais quand je vérifie le fichier zip:
/ $ unzip -l sql.zip
Archive: sql.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-05-30 10:59 home/cyrus/sql/
1776642 2013-05-23 10:22 home/cyrus/sql/wordpress.sql
--------- -------
1776642 2 files
Le dossier racine aurait dû être sql
. Qu'est ce que j'ai mal fait?
cd /home/cyrus && zip /sql.zip sql
si vous voulez que le fichier zip soit créé à la racine.Je ne sais pas si je comprends bien, mais -b ne changera pas le dossier racine. Il placera l'archive zip temporaire dans le répertoire / home / cryus, copiant sur sql.zip dans le répertoire courant une fois terminé. Cette option n'est utile que lors de la mise à jour d'une archive existante, et le système de fichiers contenant cette ancienne archive n'a pas assez d'espace pour contenir à la fois les anciennes et les nouvelles archives en même temps.
Essayez d'utiliser:
-j Stocke uniquement le nom d'un fichier enregistré (junk le chemin) et ne stocke pas les noms de répertoire. Par défaut, zip stockera le chemin complet (par rapport au chemin actuel).
la source
-j
pourrait ne pas avoir raison; Je suppose que l'OP veut conserver les chemins relatifs, pas supprimer tous les chemins.Inspiré par la réponse de Stéphane:
Le résultat:
la source
Il peut être plus facile de créer un lien symbolique vers le dossier que vous essayez de compresser vers le répertoire en cours. De cette façon, vous pouvez rester où vous êtes.
Les rm le lien symbolique si vous le souhaitez.
la source