Как я могу сжать / сжать символическую ссылку?


57

Возможно ли это, и как я могу заархивировать символическую ссылку из оболочки Linux?

Ответы:


68

Вы можете хранить символические ссылки как символические ссылки (в отличие от копии файла / каталога, на который они указывают), используя --symlinksпараметр стандарта zip.

Предполагается foo, что каталог содержит символические ссылки:

zip --symlinks -r foo.zip foo/

RAR эквивалент:

rar a -ol foo.rar foo/

tar сохраняет их как есть по умолчанию.

tar czpvf foo.tgz foo/

Обратите внимание, что символическая ссылка сама по себе почти не занимает места на диске (только инод). Как вы, наверное, знаете, это просто своего рода указатель в файловой системе.


1
я не могу использовать tar, но --symlinks не работает с zip. Вы уверены, что это стандартный почтовый пакет?
DucDigital

Какой дистрибутив у вас есть? Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. Zip 3.0 (July 5th 2008).Можете ли вы использовать RAR вместо этого? Смотрите добавленный пример.
Эдуардо Иванец

Copyright (c) 1990-2006 Info-ZIP. Все права защищены. Это Zip 2.32, вероятно, из-за этого. я попробую rar
DucDigital

1
Расщепление волосков, но технически символическая ссылка занимает место на диске, занимая инод.
ttyS0

Правда что. На самом деле из того, что я читал в прошлом, они были больше похожи на обычные файлы, содержащие путь к указанному файлу / каталогу. Теперь они просто особый вид инода, если я правильно помню.
Эдуардо Иванец

10

На RHEL 5 мы имеем

$ 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

То же самое в OpenSUSE Leap. Так и есть zip -y -r foo.zip foo/.
Дэвид Фор
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.