Comment puis-je compresser / compresser un lien symbolique?

57

Est-ce possible et comment puis-je compresser un lien symbolique depuis un shell linux?

DucDigital
la source

Réponses:

68

Vous pouvez stocker des liens symboliques en tant que liens symboliques (par opposition à une copie du fichier / répertoire vers lequel ils pointent) en utilisant le --symlinksparamètre du standard zip.

En supposant qu'il y fooait un répertoire contenant des liens symboliques:

zip --symlinks -r foo.zip foo/

Rar équivalent:

rar a -ol foo.rar foo/

tar les stocke tel quel par défaut.

tar czpvf foo.tgz foo/

Notez que le lien symbolique n'occupe presque pas d'espace disque en lui-même (juste un inode). C'est juste une sorte de pointeur dans le système de fichiers, comme vous le savez probablement.

Eduardo Ivanec
la source
1
Je ne peux pas utiliser tar, mais --symlinks ne fonctionne pas avec zip. Êtes-vous sûr que c'est le paquet zip par défaut?
DucDigital
Quelle distribution avez-vous? Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. Zip 3.0 (July 5th 2008).Pouvez-vous utiliser rar à la place? Voir exemple ajouté.
Eduardo Ivanec
Droits d'auteur (c) 1990-2006 Info-ZIP. Tous les droits sont réservés. C'est Zip 2.32 probablement à cause de cela. Je vais essayer rar
DucDigital
1
Fractionner les poils, mais techniquement, le lien symbolique occupe beaucoup d’espace disque et consomme un inode.
ttyS0
Vrai que. En fait, d'après ce que j'ai lu dans le passé, ils ressemblaient encore plus à des fichiers ordinaires contenant le chemin d'accès au fichier / répertoire indiqué. Maintenant, ils sont juste un type spécial d'inode si je me souviens bien.
Eduardo Ivanec
10

Sur RHEL 5, nous avons

$ zip -h
Copyright (C) 1990-2005 Info-ZIP
Type 'zip "-L"' for software license.
Zip 2.31 (March 8th 2005). Usage:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
(snip)
  -y   store symbolic links as the link instead of the referenced file
nodakai
la source
Idem sur OpenSUSE Leap. Donc c'est bien zip -y -r foo.zip foo/.
David Faure