J'essaie de compresser un dossier dans une archive .7z. Ce dossier contient des liens symboliques vers d'autres éléments en dehors du dossier (répertoires et fichiers).
Apparemment, 7zip archive simplement le lien lui-même, ce qui n'est pas ce que je voulais. Existe-t-il un moyen de dire à 7zip que je veux qu'il archive les éléments auxquels il est lié, pas le lien lui-même? (C'est-à-dire s'il y a un nom de lien symbolique foo
qui pointe vers C:\stuff\foo
, je veux qu'il inclue le C:\stuff\foo
répertoire dans l'archive à la place de foo, pas un lien symbolique de 0 octet.))
Existe-t-il une solution de contournement raisonnable à part l'ajout des fichiers et des dossiers en question? Il y a environ 10 000 fichiers référencés via des liens symboliques, donc les ajouter tous individuellement prendrait des heures… Peut-être qu'il y a un programme qui crée un dossier intermédiaire avec les vrais fichiers dedans puis le transmet à 7zip. Ou tout simplement un archiveur qui gère mieux les liens symboliques.
J'utilise Windows Vista. Tous les liens sont des liens symboliques (par exemple créés avec mklink link target
et mklink /D link target
).
ÉDITER:
dir
sortie de commande pour un répertoire de test plus petit:
C:\...>dir
Volume in drive C is OS
Volume Serial Number is 0A3D-CD6E
Directory of C:\...
09/04/2010 18:12 <DIR> .
09/04/2010 18:12 <DIR> ..
09/04/2010 18:10 975 real file.txt
09/04/2010 18:11 <SYMLINK> test file.txt [..\test file.txt]
2 File(s) 975 bytes
4 Dir(s) 5,214,355,456 bytes free
La création d'une archive 7z de celle-ci avec 7zip entraîne real file.txt
son inclusion, mais test file.txt
est ajoutée en tant que fichier de 0 octet, bien que le fichier lié à existe et fasse 50 Ko.
la source
Réponses:
Non, apparemment pas (malheureusement). Il y a en fait un rapport de bug sur 7zip demandant ceci: http://sourceforge.net/tracker/?func=detail&aid=2846755&group_id=14481&atid=114481 mais il a été ouvert en août 2009 et n'a pas été touché depuis: - /.
Eh bien, si vous avez suffisamment d'espace (et de temps), vous pouvez faire une copie du dossier, en remplaçant les liens symboliques par leurs cibles. Vous pouvez par exemple utiliser Robocopy et son commutateur
/sl
:Remarque: Juste pour éviter toute confusion, notez que la version Linux de p7zip (un port de 7zip) a également un binaire
7z
qui prend en charge l'archivage du fichier vers lequel un lien symbolique pointe (switch-l
). Cependant, 7zip sous Windows n'a pas ce commutateur.la source
-l
commutateur. zip et gzip le font aussi avec leurs commandes spécifiques.Si vous utilisez Vista et supérieur, supprimez les liens symboliques et remplacez-les par mklinks
Notez que mklink est assez puissant et peut inclure des liens vers des partages réseau et autres.
Puisqu'il semble y avoir une certaine confusion à ce sujet, permettez-moi de clarifier. Je suppose que l'OP parle réellement de jonctions comme illustré ici http://en.wikipedia.org/wiki/NTFS_junction_point . Mklink ne fait pas de jonctions . Cela crée de vrais liens symboliques et je l'ai essayé moi-même et 7zip les respecte parfaitement. De plus, vous devez être administrateur pour créer des liens symboliques mklink.
7zip archivera le Go, mais il n'archivera PAS le GB2. EDIT: En fait, des tests supplémentaires montrent que 7zip archivera les deux répertoires en utilisant la version 4.65. Je n'ai donc aucune idée du problème.
la source