Я использовал «unzip XXX.zip» для распаковки zip-файла, к сожалению, я ошибаюсь.
Теперь я хочу удалить все файлы и каталоги, сгенерированные "unzip".
Как я могу отменить это?
использовать этот:
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 {}
-i
правкой. :)awk '{print $4}'
- имя файла с пробелами может быть в$4 $5 $6 ...
. :)unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
Вы в затруднительном положении; стандартная
zipinfo(1)
утилита не предоставляет никакого механизма для извлечения однозначных имен файлов из архива. Но вы можете подойти ближе:Если вы уверены, что ни в одном из файлов нет символов новой строки, вы можете удалить
-i
опциюrm(1)
(что наверняка станет утомительным).источник
Выполняет задание, потому что
-Z
вызываетzipinfo
утилиту, а-1
опция заставляет ее печатать только имена файловВы можете найти более подробную информацию об этом через
man unzip
иman 1 zipinfo
командыисточник
Если вы хотите очистить каталог после случайного разархивирования, не создавая сначала папку, вы можете создать папку, распаковать в нее, а затем:
«` »очень полезно для цепочки команд, но это очень буквально.
Комментарии улучшили этот ответ, если вы хотите удалить также скрытые файлы (что вы, вероятно, делаете), сделайте это
источник
ls -a
).ls -A
чтобы избежать ошибок в листинге.
и..
Чтобы сделать это в Nautilus (без командной строки), вы можете просто перейти туда, где вы случайно распаковали файлы, отсортировать файлы, нажав на вкладку «Модифицированные», затем выбрать и удалить все файлы, помеченные с точным временем выполнил команду распаковать
источник
источник