mkdir -p /target/dir && tar -C /target/dir
É 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.
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
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
).
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