encontrar un archivo dentro de un archivo tar.gz


12

¿Es posible usar el findcomando para que busque los archivos dentro de un archivo tar.gz también usando comodines?

me gusta

find archive.tar.gz --name *foo*

Respuestas:


17

¿Qué tal solo:

$ tar tf archive.tar.gz | grep foo

¿eso no solo enumera todos los archivos?
abrazadera

@clamp Sí, si desea hacer algo con cada archivo, simplemente canalice esa salida a otro comando.

¡Gracias! lo siento pero soy un novato en Unix. Lo intenté: tar tf graphics.tar.gz | find . --name *space*pero diceunkown predicate --name
abraza el

Los findargumentos de @clamp solo toman un guión, pero debido a que es una lista de archivos en stdin, debes usarlos grep, como el código de ejemplo de hesse. Pruebatar tf graphics.tar.gz | grep 'space'
Kevin

1
grep *foo*No es una expresión regular válida. gregno entiende los globos, entiende las expresiones regulares. Intenta en su grep foolugar.
Alexios


2

Creo que funciona sin tubería y grep.

Me gusta esto: tar tvf archive.tar.gz "foo"

De esta manera, los globos también funcionarán.

tar tvf archive.tar.gz "*.foo"

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.