Quel est l'équivalent gzip de la commande suivante:
tar xvzf /usr/local/file/file/file.tar.gz -C /usr/local/extract_here
J'essaie
gzip -d /usr/local/file/file/file.tar.gz -C /usr/local/extract_here
mais ça ne marche pas, comment faire avec gzip?
Étant donné que vous avez un fichier .tar.gz, la première façon dont vous avez essayé, avec l'option -C, fonctionnera très bien:
tar xvzf /dir/to/file.tar.gz -C /dir/to/output/
tar
appelle gzip pour décompresser, puis extrait les fichiers du flux tar. gzip
ne peut que décompresser, donc gunzip file.tar.gz
partirait simplement avec le décompressé file.tar
, sur lequel vous devrez alors tar xvf file.tar
. L'option z
de tar
est simplement un raccourci pour effectuer la décompression avec gzip et extraire les fichiers.
Si vous souhaitez simplement décompresser un fichier .gz (par opposition à l'extraction d'un fichier .tar.gz) dans un répertoire différent, il vous suffit de le diriger. Par exemple. gzip -dc < file.gz > /somewhere/file
.
Afin de conserver le fichier .tar sans compression GZIP, j'utilise une ligne comme celle-ci avec de bons résultats:
cat file_to_uncompress.tar.gz | gzip -d > /destination_directory/packet_uncompressed.tar
C'est une forme utile et intuitive pour gérer les paquets dans certaines situations.
cd /mydir_with_gz_files
for i in *gz
do
gzip -dkc < $i > /my_destination_dir/${i%%.gz}
done
Cette syntaxe sert à extraire plusieurs *.gz
fichiers contenus dans /mydir_with_gz_files
dans un autre répertoire.
1) Utilisé -k
option ici car sinon gzip ne conservera PAS l'archive elle-même. Bon à retenir!
2) Je tiens également à souligner ce qui semble évident pour ceux qui donnent la bonne réponse, mais ce n'était pas le cas pour moi et l'auteur de la question: gzip N'extrayera PAS les fichiers dans un RÉPERTOIRE différent, mais s'attendra à ce que le NOM du fichier non compressé résultant soit spécifié comme bien.
Ceci est réalisé ici par le $i > ${i%%.gz}
bash substitution de paramètres qui supprime un nom comme "file.gz
" de son ".gz
"suffixe. Avec d'autres shells, la syntaxe sera différente (si possible).