Come posso eseguire il gunzip su una directory di destinazione diversa da quella corrente?
Questo non ha funzionato:
gunzip *.gz /putthemhere/
Come posso eseguire il gunzip su una directory di destinazione diversa da quella corrente?
Questo non ha funzionato:
gunzip *.gz /putthemhere/
Risposte:
Chiedi di gunzip
eseguire l'output allo standard output e reindirizza a un file in quella directory:
gunzip -c file.gz > /THERE/file
zcat
è una scorciatoia per gunzip -c
.
Se vuoi eseguire il gunzip di più file iterare su tutti i file:
for f in *.gz; do
STEM=$(basename "${f}" .gz)
gunzip -c "${f}" > /THERE/"${STEM}"
done
(qui basename
viene utilizzato per ottenere la parte del nome file senza l'estensione)
Se è necessario estrarre un singolo file e scrivere in una directory di proprietà root, utilizzare sudo dd
:
zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null
Se il file proviene da una fonte remota (es. Ssh, curl https, ecc.), Puoi farlo in questo modo:
ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null
(Nota che questi esempi funzionano solo per un singolo file, a differenza dell'esempio * .gz, che è tutti i file compressi nella directory.)
sudo tee $filename >/dev/null
è un po 'più idiomatico dell'uso dd
.
Puoi provare con> per reindirizzare il risultato nel luogo desiderato.