Saya menggunakan "unzip XXX.zip" untuk mengekstrak file zip, sayangnya, saya membuat kesalahan.
Sekarang saya ingin menghapus semua file dan direktori yang dihasilkan oleh "unzip".
Bagaimana saya bisa membatalkannya?
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 {}
-i
edit. :)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:Jika Anda yakin tidak ada file yang memiliki baris baru di dalamnya, Anda dapat menghapus
-i
opsi untukrm(1)
(yang pasti akan membosankan).sumber
Apakah pekerjaan itu karena
-Z
memanggilzipinfo
utilitas dan-1
opsi mengatakannya untuk hanya mencetak nama fileAnda dapat menemukan rincian lebih lanjut tentang ini melalui
man unzip
danman 1 zipinfo
perintahsumber
Jika Anda ingin membersihkan direktori setelah tidak sengaja membuka ritsleting tanpa membuat folder terlebih dahulu, Anda dapat membuat folder, unzip ke sana dan kemudian:
"` "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
sumber
ls -a
).ls -A
untuk 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.
sumber
sumber