¿Cómo "deshacer" el comando descomprimir?

19

Usé "descomprimir XXX.zip" para extraer un archivo zip, desafortunadamente, me equivoco.

Ahora quiero eliminar todos los archivos y directores generados por "descomprimir".
¿Cómo puedo deshacerlo?

hero2008
fuente

Respuestas:

29

utilizar esta:

unzip -l filename |  awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}

Use esto si es escéptico (solicitará confirmación)

unzip -l filename |  awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -iv {} 
Abhijeet Rastogi
fuente
Falla si algún archivo tiene espacios en sus nombres ... (+1 ahora con la -iedición. :)
sarnold
El problema está en awk '{print $4}': puede haber un nombre de archivo con espacios $4 $5 $6 .... :)
sarnold
1
Okay. Solucionado eso también.
Abhijeet Rastogi 01 de
55
FTR esto también elimina el archivo zip original
sjr
Mi camino:unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
zhuguowei
5

Estás en un lugar difícil; la zipinfo(1)utilidad estándar no proporciona ningún mecanismo para obtener nombres de archivo inequívocos de un archivo. Pero puedes acercarte:

zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i

Si está seguro de que ninguno de los archivos tiene nuevas líneas, puede eliminar la -iopción rm(1)(lo que seguramente será tedioso).

sarnold
fuente
4
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}

Hace el trabajo porque -Zinvoca la zipinfoutilidad y la -1opción le dice que imprima solo nombres de archivo

Puede encontrar más detalles sobre este medio man unzipy man 1 zipinfocomandos

Prathu Baronia
fuente
1

Si desea limpiar su directorio después de descomprimir accidentalmente sin crear primero una carpeta, puede crear la carpeta, descomprimir en eso y luego:

rm -r ` ls folder `

"` "es súper útil para encadenar comandos pero es muy literal.

Los comentarios han mejorado esta respuesta, si desea asegurarse de eliminar también los archivos ocultos (lo que probablemente haga), haga esto

rm -r ` ls -A folder `
chrispepper1989
fuente
disculpas por apresurarse a la sintaxis incorrecta, ¿se puede eliminar el voto negativo?
chrispepper1989
1
Si zip se negó a sobrescribir cualquier archivo, se eliminarán los originales. Si se descomprimieron los archivos ocultos, no se eliminarán (a menos que los use ls -a).
gmarmstrong
1
O más bien, ls -Apara evitar errores de listado .y..
gmarmstrong
0

Para hacer esto en Nautilus (sin la línea de comando), puede navegar hasta donde extrajo accidentalmente los archivos, ordenar los archivos haciendo clic en la pestaña "Modificado", luego seleccionar y eliminar todos los archivos etiquetados con la hora exacta ejecutó el comando descomprimir.

cameronroytaylor
fuente
1
Por favor lea la pregunta otra vez cuidadosamente. Su respuesta no responde a la pregunta original. Lamentablemente, Linux no incluye el Explorador de Windows.
DavidPostill
Ah, si! No se me había ocurrido que descomprimir no era un comando de terminal de Windows hasta ahora. ¡Gracias! Comprobaré si Nautilus tiene una funcionalidad similar y editaré la respuesta. De lo contrario, lo eliminaré.
cameronroytaylor
-1
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}
Igor Shcheglakov
fuente
2
Si bien esto puede responder la pregunta, sería una mejor respuesta si pudiera proporcionar alguna explicación de por qué lo hace.
DavidPostill