Risposte:
Usa questo:
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}
Usa questo se sei scettico (chiederà conferma)
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}'
- potrebbe essere presente un nome file con spazi $4 $5 $6 ...
. :)
unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
Sei in un punto difficile; l' zipinfo(1)
utilità standard non fornisce alcun meccanismo per estrarre 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 nuove righe, puoi rimuovere l' -i
opzione rm(1)
(che diventerà sicuramente noiosa).
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}
Il lavoro perché -Z
invoca zipinfo
utilità e -1
l'opzione dice di stampare solo i nomi dei file
Puoi trovare maggiori dettagli al riguardo attraverso man unzip
e man 1 zipinfo
comandi
Se si desidera ripulire la directory dopo aver decompresso accidentalmente senza creare prima una cartella, è possibile creare la cartella, decomprimerla e quindi:
rm -r ` ls folder `
"` "è super utile per concatenare i comandi ma è molto letterale.
I commenti hanno migliorato questa risposta, se vuoi assicurarti di rimuovere anche i file nascosti (cosa che probabilmente fai), fallo
rm -r ` ls -A folder `
ls -a
).
ls -A
per evitare errori dalla quotazione .
e..
Per fare questo in Nautilus (senza la riga di comando), puoi semplicemente andare dove hai estratto i file per errore, ordinare i file facendo clic sulla scheda "Modificato", quindi selezionare ed eliminare tutti i file etichettati con l'ora esatta ha eseguito il comando unzip.
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}
-i
modifica. :)