2010-05-09 23:15:23 +0000 2010-05-09 23:15:23 +0000
83
83

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/

Risposte (3)

110
110
110
2010-05-09 23:23:16 +0000

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)

2
2
2
2017-01-09 20:24:57 +0000

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).

1
1
1
2010-05-09 23:21:09 +0000

Puoi provare con > per reindirizzare il risultato al posto che vuoi.