Estou arquivando uma pasta usando o seguinte comando:
tar jcf "home/username/forum/forum.tar.bz2" /var/www/forum/
Então estou extraindo usando:
tar jxf forum.tar.bz2 ./
Extrai corretamente, mas cria /home/username/forum/var/www/forum
pasta. O que preciso fazer para extraí-lo para /home/username/forum
uma pasta?
Obrigado
Responder1
Além deresposta do dv3500ea, você pode usar o próximo comando para extrair tarballs var/www/forum/
contendo forum/
:
tar xjf forum.tar.bz2 --strip-components=2
var/
e www/
são dois componentes do caminho, daí o 2
in --strip-components
.
Se você não tiver certeza do que há dentro de um tarball, use a t
opção:
tar tjf forum.tar.bz2
Passe-o less
para que você possa usar as teclas de seta para rolar.
Uma observação geral sobre as opções utilizadas:
x
- extrai um tarball, sempre coloco ele como primeira opção pois é mais lógico ver o que um comando fazc
- cria um tarballt
- lista o conteúdo de um tarballj
- fazer tar descompactar tarballs compactados bzip2. Isto é redundante com a.bz2
extensão, então você também pode remover esta opçãof
- esta opção espera um nome de arquivo como argumento, é o tarball a ser extraído (tar xf file.tar.bz2
) ou criado (tar cf file.tar.bz2
)
Responder2
Ao criar o arquivo, use -C /var/www/
para alterar o diretório atual para /var/www ao criar o arquivo.
tar jcf home/username/forum/forum.tar.bz2 -C /var/www/ forum
Isto fará com que a pasta 'fórum' fique no nível superior do arquivo e, portanto, será extraída diretamente para a pasta atual quando você executar:
tar jxf forum.tar.bz2 ./
Responder3
A solução rápida (e possivelmente errada) seria alterar seu comando para alterar os diretórios antes de tarar. Ou seja:
cd /var/www/forum; tar jcf "home/username/forum/forum.tar.bz2" .