... a menos que eso le dé un error 'argmuent demasiado grande'. En cuyo caso, querrá usar algo como find "$dir" -maxdepth 1 -name '*.gz' -print0 | xjobs -0 -l50 -v2 gunziprestringir las instancias a 50 argumentos cada una (y ejecutarlas en paralelo).
Toby Speight
22
@techedemic es correcto pero falta '.' para mencionar el directorio actual, y este comando recorre todos los subdirectorios.
# This will find files recursively (you can limit it by using some 'find' parameters.
# see the man pages
# Final backslash required for exec example to work
find . -name '*.gz' -exec gunzip '{}' \;
# This will do it only in the current directory
for a in *.gz; do gunzip $a; done
Estoy seguro de que también hay otras formas, pero esta es probablemente la más sencilla.
Y para eliminarlo, simplemente haga un rm -rf *.gzen el directorio correspondiente
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 tar xvfz
Entonces intenta:
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 rm
Esto descomprimirá todos los archivos .tar.gz en el directorio actual y luego eliminará todos los archivos .tar.gz. Si desea una explicación, el "|" toma la salida estándar del comando anterior y la usa como estándar del comando posterior. Utilice " comando man " sin las comillas para averiguar qué hacen esos comandos y argumentos. O puede investigar en línea.
.gz
archivo no tiene por qué ser necesariamente un archivo. En ese caso, no tendría nada que eliminar al realizar la ejecucióngzip -d file.gz
.Respuestas:
Esto debería hacerlo:
fuente
find "$dir" -maxdepth 1 -name '*.gz' -print0 | xjobs -0 -l50 -v2 gunzip
restringir las instancias a 50 argumentos cada una (y ejecutarlas en paralelo).@techedemic es correcto pero falta '.' para mencionar el directorio actual, y este comando recorre todos los subdirectorios.
fuente
Obviamente, hay más de una forma de hacer esto.
Estoy seguro de que también hay otras formas, pero esta es probablemente la más sencilla.
Y para eliminarlo, simplemente haga un
rm -rf *.gz
en el directorio correspondientefuente
Extraiga todos los archivos gz en el directorio actual y sus subdirectorios:
fuente
Si desea extraer un solo archivo, utilice:
gunzip file.gz
Extraerá el archivo y eliminará el archivo .gz.
fuente
for foo in *.gz do tar xf "$foo" rm "$foo" done
fuente
Tratar:
Entonces intenta:
Esto descomprimirá todos los archivos .tar.gz en el directorio actual y luego eliminará todos los archivos .tar.gz. Si desea una explicación, el "|" toma la salida estándar del comando anterior y la usa como estándar del comando posterior. Utilice " comando man " sin las comillas para averiguar qué hacen esos comandos y argumentos. O puede investigar en línea.
fuente