Logo Hardware.com.br
pablocontrol
pablocontrol Super Participante Registrado
704 Mensagens 2 Curtidas

Arquivos compactados no formato tar.gz mantém a árvore de diretórios

#1 Por pablocontrol 31/10/2011 - 11:34
Bom dia a todos,

Estou fazendo uns backups e percebi que se o arquivo estiver em diversas sub-pastas ao ser descompactado tenho que percorrer todos os diretórios para chegar ao arquivo. Há uma maneira de compactar e deixar o arquivo diretamente no tar.gz? Exemplo:

Quero compactar um arquivo .doc em /home/usuario/pasta/documentos/arquivo.doc e utilizo o comando tar -czvf compacto.tar.gz /home/usuario/pasta/documentos/arquivo.doc , porém quando vou descompactar para testar aparece inicialmente a pasta home, ai tenho que percorrer todos os diretórios até chegar ao arquivo. Eu desejo que ao descompactar já apareça o "arquivo.doc".

Desde já agradeço aos meus colegas!

Pablo Rocha.
anderberin
anderberin Veterano Registrado
653 Mensagens 64 Curtidas
#2 Por anderberin
31/10/2011 - 13:52
humm, o tar não compacta, é um arquivador. Ele usa o gzip, bzip, xz, etc quando solicitado para compactar...

não achei referência ao que você pede, pelo contrário, tal prática não é recomendada, configurando uma "tar-bomb" quando há muitos arquivos:

http://en.wikipedia.org/wiki/Tar_%28file_format%29#Tarbomb
http://hacktoon.com/barrabin-barrabash/

da wikipedia:

A tarbomb is derogatory hacker slang used to refer to a tarball that does not follow the usual conventions, i.e. it contains many files that extract into the working directory. Such a tarball can create problems by overwriting files of the same name in the working directory, or mixing one project's files into another. It is almost always an inconvenience to the user, who is obliged to identify and delete a number of files scattered throughout the directory's contents. Such behavior is considered bad etiquette on the part of the archive's creator.
Se for para um arquivo só pode usar o gzip ou outro compactador...


gzip diretorio/meuarquivo.txt -c > meuarquivo.txt.gz
-------------------
Edit:
Se voce quiser usar o tar para isso, vá até o diretório onde estão os arquivos e execute o tar de lá:

cd /home/usuario/pasta/documentos
tar -czvf pacotao.tar.gz *


-----------

ps: o tar tem uma opção "--no-recursion" que parece não estar funcionando (pra mim tb não funcionou) como discutido neste link:
http://www.linuxquestions.org/questions/slackware-14/tar-no-recursion-option-doesnt-prevent-recursion-218060/
if ( ($so == "linux") && (($distro == "slack") || ($distro == "arch")) ) {
faceiro.png

} else {
raivoso.png

}

/*Linux User: #375.090*/
Como fazer perguntas inteligentes
DJ.
DJ. Zumbi Registrado
7.9K Mensagens 135 Curtidas
#3 Por DJ.
02/11/2011 - 15:38
Ou ainda, pra simplificar num comando só, usando o seu exemplo:
tar -C /home/usuario/pasta/documentos/ -czvf compacto.tar.gz arquivo.doc

O arquivo vai ser criado onde o comando foi executado.
[thread=837873]Dúvidas sobre o fórum?[/thread] atencao_regras.gif

Mandriva|Omnislash(by Hqxriven)
Linuxer 470678

veja.pngGuia Linux(A-Z)
veja.png[thread=900907]MultiLiveCD/DVD(Linux)?[/thread]
veja.pngCompilando Kernel(Linux)
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal