Como criar um arquivo contendo links e os arquivos vinculados. Tenho algumas bibliotecas compartilhadas das quais quero criar um arquivo. Foi isso que tentei
mkdir dest
#abc.so is a link file which points to abc.so.1
#abc.so.1 is a link file which points to abc.so.1.1
#abc.so.1.1 is the actual file
cp /usr/local/lib/abc.so* dest/
tar -czvf dest.tar.gz -C dest/ .
Mas o arquivo resultante dest.tar.gz
lista links e arquivos vinculados com o mesmo tamanho e nenhum l
tipo de arquivo para links na saída de tar -tvf dest.tar.gz
.
A
cp
operação não preserva os links simbólicos. Otar
arquivador arquiva links simbólicos sem problemas.Você provavelmente quer usar
cp
com sua-P
opção. Esta é uma opção padrão.Você também pode usar
rsync
:A
-a
opção (--archive
) é um atalho para-rlptgoD
, e é a-l
opção em particular que preserva os links simbólicos como links (as outras opções preservam a propriedade, os registros de data e hora e outros metadados dos arquivos, etc.)A implementação do coreutils do GNU
cp
também tem uma-a
opção que tentará preservar o máximo possível de metadados, etc. Você poderá usarcp -a
no lugar decp -P
para copiar links simbólicos, desde que o sistema use o coreutils.