Wie kann ich einen Symlink komprimieren?


Antworten:


68

Sie können Symlinks als Symlinks speichern (im Gegensatz zu einer Kopie der Datei / des Verzeichnisses, auf die / das verwiesen wird), indem Sie den --symlinksParameter des Standards verwenden zip.

Angenommen, fooein Verzeichnis enthält Symlinks:

zip --symlinks -r foo.zip foo/

Seltenes Äquivalent:

rar a -ol foo.rar foo/

tar speichert sie standardmäßig so wie sie ist.

tar czpvf foo.tgz foo/

Beachten Sie, dass der Symlink selbst fast keinen Speicherplatz belegt (nur eine Inode). Es ist nur eine Art Zeiger im Dateisystem, wie Sie wahrscheinlich wissen.


1
Ich kann nicht tar verwenden, aber die --symlinks funktioniert nicht mit zip. Sind Sie sicher, dass dies das Standard-Zip-Paket ist?
DucDigital

Welche Distribution hast du? Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. Zip 3.0 (July 5th 2008).Können Sie stattdessen rar verwenden? Siehe hinzugefügtes Beispiel.
Eduardo Ivanec

Copyright (c) 1990-2006 Info-ZIP. Alle Rechte vorbehalten. Dies ist wahrscheinlich Zip 2.32. Ich werde rar versuchen
DucDigital

1
Das Teilen von Haaren, aber technisch belegt der Symlink Speicherplatz und verbraucht eine Inode.
ttyS0

Das stimmt. Nach dem, was ich in der Vergangenheit gelesen habe, waren sie sogar eher normale Dateien, die den Pfad zu der Datei / dem Verzeichnis enthielten, auf die / das verwiesen wurde. Jetzt sind sie nur eine besondere Art von Inode, wenn ich mich richtig erinnere.
Eduardo Ivanec

10

Auf RHEL 5 haben wir

$ 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

Gleiches gilt für OpenSUSE Leap. So ist es in der Tat zip -y -r foo.zip foo/.
David Faure
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.