Jak mogę skompresować / skompresować dowiązanie symboliczne?

57

Czy jest to możliwe i jak mogę skompresować dowiązanie symboliczne z powłoki linux?

DucDigital
źródło

Odpowiedzi:

68

Możesz przechowywać dowiązania symboliczne jako dowiązania symboliczne (w przeciwieństwie do kopii pliku / katalogu, na którą wskazują), używając --symlinksparametru standardu zip.

Zakładając, że foojest to katalog zawierający dowiązania symboliczne:

zip --symlinks -r foo.zip foo/

Odpowiednik Rar:

rar a -ol foo.rar foo/

tar domyślnie zapisuje je.

tar czpvf foo.tgz foo/

Zauważ, że dowiązanie symboliczne samo w sobie prawie nie zajmuje miejsca na dysku (tylko i-węzeł). Jest to rodzaj wskaźnika w systemie plików, jak zapewne wiesz.

Eduardo Ivanec
źródło
1
nie mogę użyć tar, ale --symlinks nie działa z zipem. czy jesteś pewien, że to domyślny pakiet zip?
DucDigital
Jaką masz dystrybucję? Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. Zip 3.0 (July 5th 2008).Czy zamiast tego możesz użyć rar? Zobacz dodany przykład.
Eduardo Ivanec
Copyright (c) 1990-2006 Info-ZIP. Wszelkie prawa zastrzeżone. Jest to Zip 2.32 prawdopodobnie z tego powodu. Spróbuję rar
DucDigital
1
Dzielenie włosów, ale technicznie dowiązanie symboliczne zajmuje miejsce na dysku, pochłaniając i-węzeł.
ttyS0
Prawda, że. W rzeczywistości z tego, co czytałem w przeszłości, były one nawet bardziej jak zwykłe pliki zawierające ścieżkę do wskazanego pliku / katalogu. Teraz są tylko specjalnym rodzajem i-węzła, jeśli dobrze pamiętam.
Eduardo Ivanec
10

Na RHEL 5 mamy

$ 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
źródło
To samo dotyczy OpenSUSE Leap. Tak to rzeczywiście jest zip -y -r foo.zip foo/.
David Faure