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

9

Estou usando o comando tar -xvf e está seguindo o caminho explícito. No entanto, o caminho está cheio.
Exemplo:

tar -xvf 13.2.tar

Está tomando o caminho da pasta /mnt . A pasta / está cheia.

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

    
por Anthon 14.07.2009 / 04:42

4 respostas

2

Normalmente, tar precisa da opção --absolute-names ou --absolute-paths para manter a raiz '/' enquanto cria um arquivo. Mesmo se você forçar dessa maneira, o extrato pula o'/' inicial também.

No entanto, se você tiver um arquivo com o primeiro '/' e seu tar não pular durante a extração, a resposta de NoahD deve funcionar desta forma,

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

Acho que pax não manipula arquivos compactados, portanto, seria necessário canalizar depois de descompactar em pax .
Isso seria assim (supondo que você tenha um arquivo gzipado)

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

Eu encontrei esta página wiki no Google agora.

    
por 14.07.2009 / 06:35
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 começo.

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 eu suspeito que esta não é 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 comando df .

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 mount para mostrar quais sistemas de arquivos estão montados em quais dispositivos.

    
por 14.07.2009 / 06:33
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 o comutador C (C maiúsculo).

Se você quiser descompactar um arquivo com nomes de caminhos absolutos em um ponto diferente de root, talvez seja necessário mexer com chroot(1) .

    
por 14.07.2009 / 06:37
0

Eu acredito que o pax fará o truque

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

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

    
por 14.07.2009 / 06:35

Tags