En mi línea de comando bash, cuando lo uso unzip -l test.zip
obtengo un resultado como este:
Archive: test.zip
Length Date Time Name
--------- ---------- ----- ----
810000 05-07-2014 15:09 file1.txt
810000 05-07-2014 15:09 file2.txt
810000 05-07-2014 15:09 file3.txt
--------- -------
2430000 3 files
Pero sólo me interesan las líneas que contienen los detalles del archivo.
Intenté filtrar usando grep de esta manera:
unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v " files"
Pero es largo y propenso a errores (por ejemplo, un nombre de archivo Archivo de esta lista se eliminará)
¿Existe alguna otra opción con unzip -l (revisé la página de manual de descomprimir y no encontré ninguna) u otra herramienta para hacerlo?
Para mí es importante no descomprimir realmente el archivo, sino simplemente mirar qué archivos hay dentro.
Respuesta1
zipinfo -1 file.zip
O:
unzip -Z1 file.zip
Enumeraría solo los archivos.
Si aún desea información adicional para cada nombre de archivo, puede hacer:
unzip -Zl file.zip | sed '1,2d;$d'
O:
unzip -l file.zip | sed '1,3d;$d' | sed '$d'
O (asumiendo GNU head
):
unzip -l file.zip | tail -n +4 | head -n -2
O podrías usar libarchive
's bsdtar
:
$ bsdtar tf test.zip
file1.txt
file2.txt
file3.txt
$ bsdtar tvf test.zip
-rw-rw-r-- 0 1000 1000 810000 Jul 5 2014 file1.txt
-rw-rw-r-- 0 1000 1000 810000 Jul 5 2014 file2.txt
-rw-rw-r-- 0 1000 1000 810000 Jul 5 2014 file3.txt
$ bsdtar tvvf test.zip
-rw-rw-r-- 0 1000 1000 810000 Jul 5 2014 file1.txt
-rw-rw-r-- 0 1000 1000 810000 Jul 5 2014 file2.txt
-rw-rw-r-- 0 1000 1000 810000 Jul 5 2014 file3.txt
Archive Format: ZIP 2.0 (deflation), Compression: none