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.