¿Cómo hago para ir a un directorio de destino diferente?

80

¿Cómo puedo acceder a un directorio de destino distinto al actual?

Esto no funcionó:

gunzip *.gz /putthemhere/
Scott Szretter
fuente

Respuestas:

104

Solicite la gunzipsalida a salida estándar y redirija a un archivo en ese directorio:

gunzip -c file.gz > /THERE/file

zcates un acceso directo para gunzip -c.

Si desea comprimir múltiples archivos iterar sobre todos los archivos:

for f in *.gz; do
  STEM=$(basename "${f}" .gz)
  gunzip -c "${f}" > /THERE/"${STEM}"
done

(aquí basenamese usa para obtener la parte del nombre de archivo sin la extensión)

Benjamin Bannier
fuente
3
Crea el archivo, pero no conserva la propiedad del archivo, los permisos, etc. Eso puede ser bueno o malo dependiendo de su situación precisa.
Chris Johnson
2

Si necesita extraer un solo archivo y escribir en un directorio propiedad de la raíz, use sudo dd:

zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null

Si el archivo proviene de una fuente remota (es decir, ssh, curl https, etc.), puede hacerlo así:

ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null

(Tenga en cuenta que estos ejemplos solo funcionan para un solo archivo, a diferencia del ejemplo * .gz, que es todos los archivos comprimidos en el directorio).

Jamieson Becker
fuente
Para escribir con privilegios de root, sudo tee $filename >/dev/nulles un poco más idiomático que usar dd.
dcoles
1

Puede intentar con> para redirigir el resultado al lugar que desee.

jangelfdez
fuente