Solución 1:
Poner cada archivo en un archivo tar separado no tiene ningún sentido en este escenario. Puedes usar gzip
para comprimirlos directamente:
gzip *
dará como resultado file1.out.gz
, file2.out.gz
etc
Usarías tar
solo si necesita un archivo comprimido como un solo archivo.
Si necesita un archivo tar para cada archivo, puede crearlo así:
for i in *; do tar -czf $i.tar.gz $i; done
Solución 2:
Para construir sobre la respuesta de @SvenW (que solo funcionará en el directorio actual), si tiene una ENORME cantidad de archivos o desea hacerlo en una estructura de directorio recursiva, también puede usar
find . -type f -exec gzip \{\} \;
y si necesita colocar la salida en un directorio diferente (en este ejemplo, ../target
) y no desea eliminar los originales, puede hacer algo como:
find . -type f -print | while read fname ; do
mkdir -p "../target/`dirname \"$fname\"`"
gzip -c "$fname" > "../target/$fname.gz"
done