GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo gzip todos los archivos en todos los subdirectorios en bash

No hay necesidad de bucles ni nada más que find y gzip :

find . -type f ! -name '*.gz' -exec gzip "{}" \;

Esto encuentra todos los archivos regulares dentro y debajo del directorio actual cuyos nombres no terminan con el .gz extensión (es decir, todos los archivos que aún no están comprimidos). Invoca gzip en cada archivo individualmente.

Editar, según el comentario de user unknown :

Las llaves ({} ) se reemplazan con el nombre del archivo, que se pasa directamente, como una sola palabra, al comando que sigue a -exec como puedes ver aquí:

$ touch foo
$ touch "bar baz"
$ touch xyzzy
$ find . -exec echo {} \;

./foo
./bar baz
./xyzzy

find . -type f | while read file; do gzip "$file"; done

Prefiero gzip -r ./ que hace lo mismo pero es más corto.


Linux
  1. Cómo gzip todos o archivos específicos en Linux

  2. Cómo enumerar recursivamente todos los archivos y directorios

  3. ¿Cómo encontrar todos los archivos que terminan en .rb con Linux?

  4. Cómo gzip todos los archivos en todos los subdirectorios en un archivo comprimido en bash

  5. ¿Cómo encuentro todos los archivos que contienen texto específico en Linux?

Cómo encontrar archivos en Linux

¿Cómo encontrar todos los archivos propiedad de un usuario específico en Unix/Linux?

Cómo encontrar archivos en Debian

Cómo encontrar todos los archivos dispersos en Linux

¿Cómo puedo encontrar todos los archivos vinculados en un sistema de archivos?

gzip todos los archivos sin borrarlos