Como “desfazer” o comando unzip?

15

Eu usei "unzip XXX.zip" para extrair um arquivo zip, infelizmente, eu cometi um erro.

Agora eu quero excluir todos os arquivos e diretórios gerados por "unzip".
Como posso desfazer isso?

    
por hero2008 01.02.2012 / 04:09

6 respostas

26

use isso:

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

Use isto se você for cético (solicitará confirmação)

unzip -l filename |  awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -iv {} 
    
por 01.02.2012 / 04:15
3

Você está em um ponto difícil; o utilitário padrão zipinfo(1) não fornece nenhum mecanismo para obter nomes de arquivos não ambíguos de um arquivo. Mas , você pode se aproximar:

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

Se você tem certeza de que nenhum dos arquivos tem novas linhas neles, você pode remover a opção -i para rm(1) (o que certamente será entediante).

    
por 01.02.2012 / 04:17
2
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}

Faz o trabalho porque -Z invoca zipinfo utility e -1 diz para imprimir apenas nomes de arquivos

Você pode encontrar mais detalhes sobre isso por meio dos comandos man unzip e man 1 zipinfo

    
por 19.08.2018 / 22:45
1

Se você quiser limpar o diretório depois de descompactar acidentalmente sem criar uma pasta primeiro, crie a pasta, descompacte-a e, em seguida:

rm -r ' ls folder '

"'" é super útil para encadear comandos, mas é muito literal.

    
por 25.08.2014 / 15:05
0

Para fazer isso no Nautilus (sem a linha de comando), você pode simplesmente navegar até onde você acidentalmente extraiu os arquivos, ordenar os arquivos clicando na aba "Modificada", então selecione e apague todos os arquivos rotulados com o arquivo. hora exata em que você executou o comando unzip.

    
por 19.09.2016 / 17:00
-1
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}
    
por 10.08.2017 / 11:07

Tags