Менеджер архивов командной строки / экстрактор


15

Я постоянно забываю все соответствующие команды извлечения для каждого формата сжатия.

Поэтому я думал о написании сценария, который просто отображает расширения файлов в соответствующую команду извлечения. Но я думаю, что-то подобное уже существует, я просто не могу найти это.

Я был бы счастлив с чем-то вроде file-roller, но file-roller - это инструмент с графическим интерфейсом.

Ответы:


11

Пара предложений:

ОНП

unp (доступен в софт-центре) - это небольшой Perl-модуль, который распаковывает широкий спектр архивов в текущую папку. Используйте unp -sдля форматов архива, которые он поддерживает

По умолчанию он распаковывает архивы в текущую папку.

Файл-ролик

Сам файл-ролик можно запустить из командной строки. Используйте file-roller -h <archive name>для распаковки архива.


11

От сюда , чтобы положить в .bashrc:

extract () {
   if [ -f $1 ] ; then
      case $1 in
         *.tar.bz2)   tar xjf $1      ;;
         *.tar.gz)   tar xzf $1      ;;
         *.bz2)      bunzip2 $1      ;;
         *.rar)      rar x $1      ;;
         *.gz)      gunzip $1      ;;
         *.tar)      tar xf $1      ;;
         *.tbz2)      tar xjf $1      ;;
         *.tgz)      tar xzf $1      ;;
         *.zip)      unzip $1      ;;
         *.Z)      uncompress $1   ;;
         *)         echo "'$1' cannot be extracted via extract()" ;;
      esac
   else
      echo "'$1' is not a valid file"
   fi
} 

Добавить пример того, как его использовать?
MiniGod

4
выдержка file.zip
frabjous

4

Что до сих пор не упоминается является швейцарским армейским ножом утилита командной строки: atool; это доступно в репозиториях: нажмите atool Установить atool или запустите sudo apt-get install atool.

atoolна самом деле это скрипт, содержащий различные функции, такие как aunpack, apack, als, acat, adiff и arepack. Вероятно, наиболее распространенным применением программы является извлечение архивов с помощью команды aunpack. Есть довольно много интересных и полезных опций, но основной способ извлечь большинство архивов - просто запустить, например,

aunpack myarchive.tar

Поддержка tar, 7z, zip, jar, rar, ar, lha и многих других форматов архивов и их вариаций документируется путем входа man atoolв терминал или просмотра онлайн-страницы руководства Ubuntu .

Итак, полезная вещь заключается в том, что если у вас есть архивы tar, zip и gz в одной папке, все, что вам нужно сделать, чтобы извлечь их все, это запустить

aunpack -e *

и все поддерживаемые архивы будут распакованы с сохранением структуры папок. Если имя полученной папки уже существует, оно не будет перезаписано, но получит уникальное имя, например unpack-5645.

Или, если вы хотите выбрать только один тип архива и распаковать их все, используйте вместо

aunpack -e *.zip

Если вам нужны файлы, распакованные непосредственно в определенном каталоге, с сохранением только структуры каталогов подпапки (если она выходит), введите, например,

aunpack -e Scripts11.zip -X /home/mike/Videos

Если файл с таким именем уже существует, вам будет предложено действие переименовать или перезаписать, если -fв команде не указан параметр force ( ).

Как отмечает руководство, aunpack сначала извлекает

файлы в уникальный (временный) каталог, а затем перенесите его содержимое обратно, если это возможно. Это также предотвращает перезапись локальных файлов по ошибке.


С другими инструментами возможны другие действия, как упомянуто на странице руководства :

  • apack создает архивы из файлов или папок или указывает stdin
  • ALS перечисляет файлы в указанном архиве
  • acat позволяет извлекать архивные файлы на стандартный вывод
  • adiff позволяет сравнивать два указанных архива
  • arepack позволяет преобразовать один формат архива в другой, поместив содержимое исходного архива во временную папку, а затем повторно упакуя новый.

Есть много других полезных опций для всех утилит, но, вероятно, наиболее используемой будет aunpack, поскольку это позволяет легко извлечь несколько разных архивов. Замечательно иметь возможность просто выполнить одну команду и иметь возможность извлекать несколько различных форматов архива, не используя различные команды для tar, zip и т. Д.

Для очень недавней статьи, описывающей, как интегрировать функции atool в настраиваемые действия вашего файлового менеджера, такого как Thunar, см. Этот онлайн-журнал .


3

Существует инструмент под названием dtrx- сделать правильное извлечение.

Установите его из репозитория Ubuntu и запустите dtrx somefile.someext. Инструмент будет интерактивно запрашивать пользователя о вложенных архивах (zip-файлы zip).

dtrx - сложная версия выдержки frabjous .


0

С какими форматами вам нужно иметь дело? Одним из способов является написание сценария оболочки, который проверяет расширения своего аргумента. Или, если все, с чем вы имеете дело, это вариации .tar. *, tar -xfТо простое выполнение будет иметь дело с большинством из них автоматически. (Поэтому я помню только то, unzipчто достаточно для всего, с чем я обычно сталкиваюсь.)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.