Você pode querer dar uma olhada na opção -C
de tar
.
tar zxf hdf5-1.8.18.tar.gz -C hdf
irá descompactar, descompactar, & coloque o diretório sob o hdf/
diretory.
Eu tenho o seguinte arquivo gzip: hdf5-1.8.18.tar.gz
. Quando descompactar o arquivo com o seguinte comando:
gunzip < hdf5-1.8.18.tar.gz | tar xf -
Descompacta no seguinte diretório criado: hdf5-1.8.18
. Este diretório não é realmente conveniente para usar causa do "-", portanto, eu mudei o nome do diretório usando o seguinte comando:
mv hdf5-1.8.18 hdf5
Mas usando este comando eu perdi a informação da versão "1.8.18": Portanto, eu posso fazer uma solução feia como:
mkdir hdf5
mv hdf5-1.8.18 hdf5/1.8.18
Eu acho esta solução silenciosa, portanto, gostaria de saber se não há uma maneira mais direta de fazer isso. Obrigada!
Antes de tudo, seria mais fácil se você redigitasse sua pergunta um pouco. Sente-se facilmente solucionável através de um script de algum tipo. A seguir deve funcionar em um script BASH. Execute-o com o nome do arquivo como primeiro argumento. Por exemplo, "./change_name_script.sh hdf5-1.8.18.tar.gz" e funcionará como quiser
#!/bin/bash
filename=$1
gunzip < $filename | tar xf -
move_filename=$(echo $filename | sed -r 's/.tar.gz$//')
first_part=$(echo "$move_filename" | sed -r 's/-.*$//')
second_part=$(echo "$move_filename" | sed -r 's/^.*-//')
mkdir $first_part
mv $move_filename $first_part/$second_part