Não é possível definir o diretório de destino ao extrair um arquivo usando tar

4

Estou tentando extrair um arquivo tar para um diretório específico. Eu tentei usar a bandeira -C, mas não funciona como esperado. Aqui está a linha de comando que estou usando

tar xvf myarchive.tar -C mydirectory/

Isso me dá um erro a seguir:

tar: file -C: not present in archive
tar: file mydirectory/: not present in archive

Eu também tentei definir o sinalizador -C antes do arquivo, mas ele diz isso:

tar xvf -C mydirectory/ myarchive.tar
tar: -C: No such file or directory

O que estou fazendo de errado?

EDITAR: tar -tf mostra que o arquivo tar não possui nomes de caminho completos:

tar -tf myarchive.tar
herareport/
herareport/bin/
...
    
por palto 02.08.2012 / 15:53

5 respostas

3

:: espanca Crusty Old Unix Monger badge ::

Dos comentários:

If I try to use sudo -u myuser cd /home/myuser/; sudo -u myuser tar xvf /path/to/myarchive.tar it tries to extract to the wrong directory.

Isso porque sudo cd não é persistente (tente você mesmo - sudo cd / e, em seguida, execute pwd - você estará no diretório em que começou, para que seu segundo comando sudo não esteja em execução onde você quiser).

Para corrigir isso, você precisa dizer a sudo para iniciar um shell próprio para poder executar vários comandos como o usuário alvo.
sudo -u myuser -s -- "(cd /home/myuser ; tar xvf /path/to/tarfile)" provavelmente fará o truque.

(Se por algum motivo sua versão de sudo não gostar disso, sudo -u myuser sh -c "cd /home/myuser ; tar xvf /path/to/tarfile" também deve funcionar.)

(Claro que nada disso explica porque -C não está funcionando como esperado no AIX, mas deve resolver seu problema imediato)

    
por 02.08.2012 / 17:21
1

Tente

tar -xvC mydirectory/ -f myarchive.tgz 
    
por 02.08.2012 / 15:58
0

Como o seu tarball foi criado com o caminho completo, faça o download do tar do GNU e tente novamente para ver se funciona.

    
por 02.08.2012 / 16:25
0

mv myarchive.tgz mydirectory/ && tar xvf mydirectory/myarchive.tgz

    
por 02.08.2012 / 16:54
0

Extrai myarchive.tar para / mydirectory

Comandos:

cd /mydirectory
pax -rv -f myarchive.tar -s ',^/,,'
    
por 29.06.2015 / 15:55

Tags