Como uso o comando tar do Unix com um caminho de arquivo implícito?

9

Estou usando o tar -xvfcomando e ele está tomando o caminho explícito. No entanto, o caminho está cheio.
Exemplo:

tar -xvf 13.2.tar

Está seguindo o caminho da /mntpasta. A /pasta está cheia.

Como posso tar o arquivo com o caminho implícito?

Anthon
fonte
Você deve elaborar claramente o que exatamente está acontecendo, pois sua maneira atual de fazer a pergunta faz até a bola de cristal mais sofisticada parecer um pouco nebulosa.

Respostas:

2

Geralmente, tarprecisa da opção --absolute-namesou --absolute-pathspara reter a '/'parte raiz ao criar um arquivo morto. Mesmo se você forçar dessa maneira, o extrato também ignora a liderança '/'.


No entanto, se você tem um arquivo com o líder '/'e o tar não o ignora durante a extração, a resposta de NoahD deve funcionar desta forma,

pax -r -s ',/mnt,/new/path,' -v -f 13.2.tar

Eu acho paxque não lida com arquivos compactados, então você precisaria canalizar após descompactar pax.
Isso seria assim (supondo que você tenha um arquivo compactado com gzip)

gunzip -c 13.2.tar.gz | pax -r -s ',/mnt,/new/path,' -v

Encontrei esta página wiki no Google agora.

nik
fonte
2

A diferença entre usar canônico (também conhecido como explícito) e relativo (o que você provavelmente está chamando de implícito) é se você usa um /no início.

Por exemplo, se o diretório de trabalho atual for /usr/home/bob, os seguintes comandos terão exatamente o mesmo efeito

tar -xvf foo.tar *
tar -xvf ./foo.tar *
tar -xvf ./foo.tar ./*
tar -xvf /usr/home/bob/foo.tar *
tar -xvf /usr/home/bob/foo.tar ./*
tar -xvf /usr/home/bob/foo.tar / usr / home / bob / *

Mas suspeito que essa não seja realmente a sua pergunta. Parece mais que você precisa determinar o uso do disco e localizar um diretório que não esteja cheio. Isso pode ser feito com o dfcomando

df -k # space on disk in kilobytes
df -m # as above, but in meg
df -g # as above, but in gig

E você pode usar mountpara mostrar quais sistemas de arquivos estão montados em quais dispositivos.

Anthon
fonte
0

Para criar um arquivo tar com um caminho relativo,

cd /parent/of/dir/to/tar
tar cvf subdir.tar subdir

Para descompactar um tar em um diretório específico diferente do diretório de trabalho atual, use a opção -C (C maiúscula).

Se você deseja descompactar um arquivo com nomes de caminho absolutos para um ponto que não seja raiz, pode ser necessário mexer nele chroot(1).

robc
fonte
0

Eu acredito que o Pax fará o truque

pax -r -s, / mnt, / gooddir, -f 13.2.tar

Deve permitir que você substitua em um novo diretório raiz.

Anthon
fonte