Respostas:
usa isto:
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}
Use isso 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 {}
awk '{print $4}'- um nome de arquivo com espaços pode estar $4 $5 $6 .... :)
unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
Você está em uma situação difícil; o zipinfo(1)utilitário padrão não fornece nenhum mecanismo para obter nomes de arquivos inequívocos de um arquivo morto. Mas você pode chegar perto:
zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i
Se você tiver certeza de que nenhum dos arquivos possui novas linhas, remova a -iopção rm(1)(que certamente será tediosa).
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}
Faz o trabalho porque -Zchama o zipinfoutilitário e a -1opção para imprimir apenas nomes de arquivos
Você pode encontrar mais detalhes sobre isso através de man unzipe man 1 zipinfocomandos
Se você deseja limpar seu diretório após descompactar acidentalmente sem criar uma pasta primeiro, crie a pasta, descompacte e, em seguida, faça o seguinte:
rm -r ` ls folder `
"` "é super útil para encadear comandos, mas é muito literal.
Os comentários melhoraram esta resposta. Se você deseja garantir a remoção de arquivos ocultos também (o que provavelmente faz), faça isso
rm -r ` ls -A folder `
ls -a).
ls -A...
Para fazer isso no Nautilus (sem a linha de comando), você pode simplesmente navegar para onde você extraiu acidentalmente os arquivos, classificá-los clicando na guia "Modificado" e selecionar e excluir todos os arquivos rotulados na hora exata em que executou o comando descompactar.
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}
-iedição :).