16

Я использовал "unzip XXX.zip" для распаковки zip-файла, к сожалению, я ошибаюсь.

Теперь я хочу удалить все файлы и каталоги, сгенерированные "unzip".
Как я могу отменить это?

6 ответов6

27

использовать этот:

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 {} 
3
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}

Выполняет задание, потому что -Z вызывает утилиту zipinfo а опция -1 заставляет ее печатать только имена файлов

Вы можете найти более подробную информацию об этом с помощью команд man unzip и man 1 zipinfo

3

Вы в затруднительном положении; стандартная zipinfo(1) не предоставляет никакого механизма для извлечения однозначных имен файлов из архива. Но вы можете подойти ближе:

zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i

Если вы уверены, что ни в одном из файлов нет символов новой строки, вы можете удалить опцию -i для rm(1) (что наверняка утомительно).

1

Если вы хотите очистить каталог после случайного разархивирования, не создавая сначала папку, вы можете создать папку, распаковать в нее, а затем:

rm -r ` ls folder `

«` »очень полезно для создания цепочек команд, но это очень буквально.

0

Чтобы сделать это в Nautilus (без командной строки), вы можете просто перейти туда, где вы случайно распаковали файлы, отсортировать файлы, нажав на вкладку "Модифицированные", затем выбрать и удалить все файлы, помеченные с точным временем выполнил команду распаковать

-1
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .