Я использовал "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 {}
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}
Выполняет задание, потому что -Z
вызывает утилиту zipinfo
а опция -1
заставляет ее печатать только имена файлов
Вы можете найти более подробную информацию об этом с помощью команд man unzip
и man 1 zipinfo
Вы в затруднительном положении; стандартная zipinfo(1)
не предоставляет никакого механизма для извлечения однозначных имен файлов из архива. Но вы можете подойти ближе:
zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i
Если вы уверены, что ни в одном из файлов нет символов новой строки, вы можете удалить опцию -i
для rm(1)
(что наверняка утомительно).
Если вы хотите очистить каталог после случайного разархивирования, не создавая сначала папку, вы можете создать папку, распаковать в нее, а затем:
rm -r ` ls folder `
«` »очень полезно для создания цепочек команд, но это очень буквально.
Чтобы сделать это в Nautilus (без командной строки), вы можете просто перейти туда, где вы случайно распаковали файлы, отсортировать файлы, нажав на вкладку "Модифицированные", затем выбрать и удалить все файлы, помеченные с точным временем выполнил команду распаковать
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}