Ответы:
использовать этот:
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 -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}
-iправкой. :)