Comment puis-je gunzip dans un répertoire de destination autre que le répertoire actuel?
Cela n'a pas fonctionné:
gunzip *.gz /putthemhere/
Comment puis-je gunzip dans un répertoire de destination autre que le répertoire actuel?
Cela n'a pas fonctionné:
gunzip *.gz /putthemhere/
Réponses:
Demandez gunzip
à la sortie sur la sortie standard et redirigez vers un fichier dans ce répertoire:
gunzip -c file.gz > /THERE/file
zcat
est un raccourci pour gunzip -c
.
Si vous voulez gunzip, plusieurs fichiers parcourent tous les fichiers:
for f in *.gz; do
STEM=$(basename "${f}" .gz)
gunzip -c "${f}" > /THERE/"${STEM}"
done
(ici basename
est utilisé pour obtenir la partie du nom de fichier sans l'extension)
Si vous devez extraire un seul fichier et écrire dans un répertoire appartenant à la racine, utilisez sudo dd
:
zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null
Si le fichier provient d'une source distante (par exemple, ssh, curl https, etc.), vous pouvez le faire comme ceci:
ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null
(Notez que ces exemples ne fonctionnent que pour un seul fichier, contrairement à l'exemple * .gz, qui contient tous les fichiers gzippés du répertoire.)
sudo tee $filename >/dev/null
c'est un peu plus idiomatique que d'utiliser dd
.
Vous pouvez essayer avec> pour rediriger le résultat vers l'endroit souhaité.