Відповіді:
використовуй це:
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}
Використовуйте це, якщо ви ставитесь до скептично (підкажете підтвердження)
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}'- ім'я файлу з пробілами може бути в $4 $5 $6 .... :)
unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
Ти в грубій точці; стандартна zipinfo(1)утиліта не забезпечує жодного механізму для отримання однозначних імен файлів з архіву. Але , ви можете підійти близько:
zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i
Якщо ви впевнені, що в жодному з файлів немає нових рядків, ви можете видалити -iпараметр до rm(1)(що, безумовно, набридне).
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}
Робить це завдання, тому що -Zпосилається на zipinfoутиліту та -1параметр пропонує їй друкувати лише імена файлів
Ви можете дізнатися більше про це через команди man unzipта man 1 zipinfoкоманди
Якщо ви хочете очистити ваш каталог після випадкового розпакування, не створивши спочатку папку, ви можете створити папку, розпакуйте її, а потім:
rm -r ` ls folder `
"" "дуже корисно для ланцюжка команд, але дуже буквально.
Коментарі покращили цю відповідь, якщо ви хочете переконатись, що ви також видаляєте приховані файли (що, ймовірно, робите), зробіть це
rm -r ` ls -A folder `
ls -a).
ls -Aщоб уникнути помилок у переліку .та..
Для цього в Nautilus (без командного рядка) ви можете просто перейти до місця випадкового вилучення файлів, сортувати файли, натиснувши на вкладку "Модифіковані", потім вибрати та видалити всі файли, позначені точним часом запустив команду unzip.
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}
-iредагуванням. :)