Відповіді:
використовуй це:
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
редагуванням. :)