Crie o diretório de destino ao extrair o tarball

14

É possível criar um diretório de destino, semelhante a mkdir -p , onde eu posso definir um diretório de destino inexistente dentro do meu comando tar, e o tar criará o diretório para mim?

Eu sei que posso redirecionar a saída para um diretório usando tar -C /target/dir , mas isso não funciona se o diretório de destino for inexistente.

    
por wulfgarpro 25.11.2011 / 04:49

4 respostas

27
mkdir -p /target/dir && tar -C /target/dir
    
por 25.11.2011 / 05:21
5

Isso fez mais sentido para mim mkdir -p /create/folder && tar -zxf haroopad-v0.13.0_x64.tar.gz -C /create/testfolder

mkdir faz a pasta, embora eu não entenda muito bem a opção -p . && permite que você execute um segundo comando. Eu usei típicos comutadores de tar, mas no final -C é usado para alterar diretórios e extrair para o local necessário.

referência: extrair arquivos -contained-in-archive-tar-gz-para-novo-diretório-nomeado-archive

    
por 01.02.2015 / 02:40
2
tar -xvf bash.html_node.tar.gz --one-top-level

Da página man do comando tar

--one-top-level[=DIR]

    Extract all files into DIR, or, if used without argument, into a subdirectory named by the base name of the archive (minus standard compression suffixes recognizable by --auto-compress).
    
por 29.10.2018 / 05:43
1

Se você não conhece os caminhos para criar ...
Obtenha os caminhos necessários do arquivo tar e crie-os ...

for P in \'tar tvf tarfile.tar |tr -s [:space:] |cut -d' ' -f6\'; do  
    C=\'echo "${P: -1}"\'  #get the last character  
    if [ $C = '/' ]; then  
        echo "Found directory: $P"  
        mkdir -p $P  
    fi  
done
    
por 30.01.2018 / 19:34

Tags