Come faccio a fare gunzip in una directory di destinazione diversa?
Come faccio a fare gunzip in una directory di destinazione diversa da quella corrente?
Questo non ha funzionato:
gunzip *.gz /putthemhere/
Come faccio a fare gunzip in una directory di destinazione diversa da quella corrente?
Questo non ha funzionato:
gunzip *.gz /putthemhere/
Chiedi a gunzip
di inviare l'output allo standard output e di reindirizzare a un file in quella directory:
gunzip -c file.gz > /THERE/file
zcat
è una scorciatoia per gunzip -c
.
Se si vuole fare 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
è usato per ottenere la parte del nome del file senza l'estensione)
Se avete bisogno di estrarre un singolo file e scrivere in una directory di proprietà di root, allora usate sudo dd
:
zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null
Se il file proviene da una fonte remota (cioè ssh, curl https, ecc.), potete fare così:
ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null
(Notate che questi esempi funzionano solo per un singolo file, a differenza dell'esempio *.gz, che sono tutti i file gzippati nella directory).
Puoi provare con > per reindirizzare il risultato al posto che vuoi.