¿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/

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)


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


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.