Como posso compactar / compactar um link simbólico?

57

É possível e como posso zipar um link simbólico de um shell linux?

DucDigital
fonte

Respostas:

68

Você pode armazenar links simbólicos como links simbólicos (ao contrário de uma cópia do arquivo / diretório para o qual eles apontam) usando o --symlinksparâmetro do padrão zip.

Assumindo que fooé um diretório que contém links simbólicos:

zip --symlinks -r foo.zip foo/

Rar equivalente:

rar a -ol foo.rar foo/

tar armazena-os como estão por padrão.

tar czpvf foo.tgz foo/

Observe que o link simbólico ocupa quase nenhum espaço em disco por si só (apenas um inode). É apenas um tipo de ponteiro no sistema de arquivos, como você provavelmente sabe.

Eduardo Ivanec
fonte
11
Não consigo usar o tar, mas o --symlinks não está funcionando com o zip. tem certeza de que é o pacote zip padrão?
DucDigital
Qual distribuição você tem? Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license. Zip 3.0 (July 5th 2008).Você pode usar rar? Veja o exemplo adicionado.
Eduardo Ivanec
Copyright (c) 1990-2006 Info-ZIP. Todos os direitos reservados. Este é o Zip 2.32 provavelmente por causa disso. vou tentar rar
DucDigital
11
Divisão de pêlos, mas tecnicamente o link simbólico ocupa espaço em disco, consumindo um inode.
TtyS0
Verdade isso. Na verdade, pelo que li no passado, eles eram ainda mais arquivos comuns, contendo o caminho para o diretório / arquivo apontado. Agora eles são apenas um tipo especial de inode, se bem me lembro.
Eduardo Ivanec
10

No RHEL 5, temos

$ 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
fonte
O mesmo no OpenSUSE Leap. Então é verdade zip -y -r foo.zip foo/.
David Faure