¿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?

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 {} 

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).


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


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 `

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.


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 {}

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
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.