usa questo:
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}
Usalo se sei scettico (richiede conferma)
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -iv {}
Sei in una situazione difficile; lo standard zipinfo(1)
l'utilità non fornisce alcun meccanismo per ottenere nomi di file non ambigui da un archivio. Ma , puoi avvicinarti:
zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i
Se sei sicuro che nessuno dei file contenga caratteri di nuova riga, puoi rimuovere il -i
opzione a rm(1)
(che diventerà sicuramente noioso).
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}
Fa il lavoro perché -Z
invoca zipinfo
utilità e -1
l'opzione gli dice di stampare solo i nomi dei file
Puoi trovare maggiori dettagli su questo tramite man unzip
e man 1 zipinfo
comandi