Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Аналогичная ⟪ for i in *.zip; do unzip ${i%.zip}; done⟫ команда для 7z и rar.  (Прочитано 499 раз)

0 Пользователей и 1 Гость просматривают эту тему.

adawdp

  • Автор темы
  • Гость
2016 Mar 02; 09:57 PM; Oakville, ON, Canada.

— Для массовой распаковки архивов есть известные хорошо себя зарекомендовавшие наборы команд.
Код: Bash
  1. for i in *.zip; do unzip ${i%.zip}; done
  2. for i in *.tar.gz; do tar xzf "$i"; done

— Есть ли у кого-то аналогичные проверенные :) для распаковки архивов 7z и rar?

Оффлайн scsiman

  • Активист
  • *
  • Сообщений: 331
    • Просмотр профиля
Например,
find . -type f -iname '*.rar' -exec unrar x '{}' \;
Здесь проблема будет со split rar архивами типа test.part{0-9}.rar и т.п. Часто встречаются на различных файлопомойках и у криворуких торрентопаковщиков; ковырять лень.

P.S. Как будут работать ваши команды, если есть, например, каталог test.zip или test.tar.gz?
Dell Studio XPS 16, Ubuntu 14.04 LTS (Home).
HP nx6110, Ubuntu 8.04 LTS => 10.04 LTS (Home).

adawdp

  • Автор темы
  • Гость
2016 Mar 03; 08:34 AM; Oakville, ON, Canada.

— Вариант с Find, scsiman, понятен. Я несколько по другому пути пошёл. Я не описал задачу в целом. Задача эта выглядит так.
Есть данные, не мои, моих колег и предшественников на той работе, которую я выполняю. Что-то типа „файлопомойки”. Структуры никакой архивы в перемешку с директориями архив в архиве и директории со многими поддиректориями.

— Есть у меня скрипт я его писал с помощью приходящего нашего программиста,который отнекивался и говорил, что не знает bash, но ничего освоил :). Этот скрипт собирает все файлы в одну директорию при этом переименовывает файлы с одинаковыми именами.
(Нажмите, чтобы показать/скрыть)
— Иными словами все архивы в числе других файлов оказываются в одной известной директории в данном случае “ww”. А когда они находятся в одной директории извлечение данных не представляет труда.

— Сейчас я работаю над “мегапроектом :)” скрипта который должен распаковать все архивы и архивы в архивах т.е. чтобы получить одну директорию просто с извлечёнными файлами если имена файлов совпадают, они должны быть переименованы.
— Т.е. хочу расширить возможности приведенного выше скрипта собрать все файлы из директорий и поддиректорий и из архивов в одну директорию.

Оффлайн rtupe

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Установите atool - команда aunpack распаковывает абсолютно все и бонус для zip архивов - если архив не в одном каталоге, то каталог создается по имени архива и распаковывается в него.

adawdp

  • Автор темы
  • Гость
2016 Mar 05; 08:45 AM; Oakville, ON, Canada.

— Спасибо, rtupe, я знал о существовании “вселенского распаковщика :)”, но вот по поводу применения atool в скриптах не встречал никакой практики. Это меня и смутило…

— Или это консерватизм определённый или действительно есть какие-то проблемы применения attol в скриптах. Но попробую.

 

Страница сгенерирована за 0.067 секунд. Запросов: 24.