Jawaban:
Gunakan ini:
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}
Gunakan ini jika Anda skeptis (akan meminta konfirmasi)
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}'- nama file dengan spasi mungkin di $4 $5 $6 .... :)
unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
Anda berada di tempat yang sulit; zipinfo(1)utilitas standar tidak menyediakan mekanisme apa pun untuk mendapatkan nama file yang jelas dari arsip. Tapi , Anda bisa mendekati:
zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i
Jika Anda yakin tidak ada file yang memiliki baris baru di dalamnya, Anda dapat menghapus -iopsi untuk rm(1)(yang pasti akan membosankan).
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}
Apakah pekerjaan itu karena -Zmemanggil zipinfoutilitas dan -1opsi mengatakannya untuk hanya mencetak nama file
Anda dapat menemukan rincian lebih lanjut tentang ini melalui man unzipdan man 1 zipinfoperintah
Jika Anda ingin membersihkan direktori setelah tidak sengaja membuka ritsleting tanpa membuat folder terlebih dahulu, Anda dapat membuat folder, unzip ke sana dan kemudian:
rm -r ` ls folder `
"` "sangat berguna untuk perintah chaining tetapi sangat literal.
Komentar telah meningkatkan jawaban ini, jika Anda ingin memastikan Anda juga menghapus file tersembunyi (yang mungkin Anda lakukan), lakukan ini
rm -r ` ls -A folder `
ls -a).
ls -Auntuk menghindari kesalahan dari daftar. dan..
Untuk melakukan ini di Nautilus (tanpa baris perintah), Anda bisa menavigasi ke tempat Anda secara tidak sengaja mengekstrak file, mengurutkan file dengan mengklik tab "Modifikasi", lalu pilih dan hapus semua file yang berlabel dengan waktu yang tepat Anda menjalankan perintah unzip.
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}
-iedit. :)