2011-03-03 13 views
12

Tengo alrededor de 200,000 thumbs en una carpeta que tienen gzip y terminan en .tar.gz Lo que quiero hacer es extraer todos los archivos en esa carpeta pero a un carpeta diferente ¿Alguien sabe un comando para hacer esto? Encontré esto en línea pero no sabría cómo usarlo para extraer a una carpeta diferente.ubuntu extrae múltiples archivos .tar.gz al nuevo directorio

for i in *.tar.gz; do tar -xvzf $i; done 
+0

¿Cómo está relacionado este programa? –

+0

no tengo idea, pero encontré preguntas similares aquí, así que pensé que lo haría porque hay mucho conocimiento aquí. – chris

+0

Cualquier pregunta similar a la suya habría sido eliminada o cerrada/migrada. –

Respuesta

27

añadir la opción -C para seleccionar el directorio de destino:

for i in *.tar.gz; do tar xvzf $i -C path/to/output/directory; done 
+0

parece funcionar, gracias. – chris

2
actdir=`pwd` 
for files in *tar.gz ; do 
    filedir=`basename $files .tar.gz` 
    mkdir $filedir 
    cd $filedir 
    tar -xzf ../$files 
    cd $actdir 
done 

HTH

+0

Estoy impresionado con el hecho de que tar no tiene la opción de crear la carpeta automáticamente. Gracias por tu guión, muy útil. –

4

En este momento está usando

tar 

para extraer todos los archivos. Creo que puedes establecer a qué directorio mostrar.

que sería algo como esto:

for i in *.tar.gz; do tar -xvzf $i -C directory; done 

donde directorio es la ruta de la carpeta que desea extraer los archivos.

Consulte http://www.computerhope.com/unix/utar.htm (documentación sobre alquitrán).

2

La opción -C es probablemente mejor. También puede hacer:

$ mkdir/ruta/a/NewFolder
$ for i in * .tar.gz; do files = "$ files $ (readlink -f $ i)"; done # builds lista absoluta de nombres de archivos
$ cd/path/to/newfolder
$ for i in $ files; hacer tar -zxvf $ i; hecho

Cuestiones relacionadas