Официальный форум СВД Встраиваемые Системы
10 Декабря, 2016, 15:41:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Использование tar в QNX4 и QNX6  (Прочитано 3150 раз)
Олег Большаков
Администратор
Житель форума

Сообщений: 2934



WWW
« : 04 Марта, 2011, 20:48:51 »

Использование tar в QNX4 и QNX6

Утилита tar — это традиционная Unix программа для создания архивов в формате tar. Если изначально tar использовался для создания архивов на магнитной ленте, то сейчас — для создания архива из нескольких файлов. Основным преимуществом программы является то, что в архиве сохраняется информация о каталогах, атрибутах файлов, временых метках и владельце и группе. Программа tar следует философии UnixПишите программы, которые делают что-то одно и делают это хорошо (Write programs that do one thing and do it well) и поэтому не сжимает архивы. Чтобы получить сжатый архив tar надо воспользоваться, например, одной из утилит gzip или bzip2.

Программа tar появилась в Unix очень давно и со временем были разрабоаны несколько клонов, которые иногда не совместимы между собой или могу обладать различными возможностями. В QNX6 используется GNU tar, который поддерживает такие функции, котороых нет в QNX4 варианте tar. Из часто используемых функций можно отметить — поддержку сжатия (например, с использованием gzip или bzip2) и распаковку в указанный каталог.


Сжатый архив tar

Пример команды для создания сжатого архива tar.gz при помощи GNU tar в QNX6:

$ tar zcf files.tar.gz file1.txt file2.txt

Если необходимо создать tar.bz2 архив, то команда может быть следующей:

$ tar jcf files.tar.bz2 file1.txt file2.txt

Обратите внимание на то, что перед опциями нет знака - (минус). Это связано с тем, что tar утилита, которая разрабатывалась достаточно давно и синтаксис её немного отличается от общепринятого. Современные версии tar понимают два варианта опций — со знаком минус (обычная практика для Unix, и без знака минус (для сохранения совместимости). Если вы хотите показать себя опытным пользователем давно работающим с Unix, то попробуйте указывать опции утилите tar без знака минус.

Утилита tar в QNX4 не поддерживает опции сжатия (z и j), но сжатые архивы возможно подготовить другим образом. Для создания tar.gz или tar.bz2 архивов можно воспользоваться следующими командами:

Код:
$ tar c file1.txt file2.txt | gzip > files.tar.gz
$ tar c file1.txt file2.txt | bzip2 > files.tar.bz2

Если нужно распаковать сжатый архив, то в QNX6 команда может иметь следующий вид:

Код:
$ tar jxf files.tar.bz2

или просто

Код:
$ tar xf files.tar.bz2

Указывать опцию j не обязательно, т.к. GNU tar может сам определить, какой утилитой сжат архив.

В QNX4 необходимо предварительно разжать архив, и только потом можно будет его разархивировать при помощи tar, т.е. необходимо выполнить последовательно следующие команды:

Код:
$ bzip2 -d files.tar.bz2
$ tar xf files.tar

Зачастую этот вариант не приемлем, т.к. исходный (сжатый) архив также необходимо сохранить. В таком случае можно воспользоваться следующей командой:

Код:
$ bzcat files.tar.bz2 | tar x

В стандартную поставку QNX4 не входит утилита bzip2, но поскольку она имеет больший коэффициен сжатия и высокую популярность в других Unix-подобных системах, то программа была спортирована в QNX4. Скачать утилиту можно в отдельной теме. Кстати, аналог bzcat для gzip называется zcat. Утилиты gzip и zcat входят в состав QNX4, и это одна из причин почему для QNX так популярны именно tar.gz архивы.


Распаковка файлов в указанный каталог

Утилита tar работает с файлами в текущем каталоге, но иногда бывает необходимо распаковать файлы не в текущий, а какой-то определённый каталог. При работе в QNX6 с GNU tar можно выполнить следующую команду:

Код:
$ tar -C /tmp -xf files.tar

Файлы будут распакованы в каталог /tmp. Аналогичным образом можно и запаковать файлы из указанного каталога, например, следующей командой:

Код:
$ tar -C /tmp -cf files.tar file1.txt file2.txt

В архив с именем files.tar будут помещены файлы file1.txt и file2.txt из каталога /tmp.

До недавнего времени команда tar в QNX4 не поддерживала опцию -C и из положения можно было выйти, например, при помощи следующей составной команды:

Код:
$ CWD=$PWD; cd /tmp; tar -xf $CWD/files.tar; cd $CWD

Поскольку пользоваться такой командой не всегда удобно, в СВД Встраиваемые Системы утилита tar для QNX4 была доработана и в неё была включена опция -C. Доработанная версия tar предлагается к тестированию (ссылка на загрузку расположена в конце этого сообщения).


Установка обновлённой версии tar в QNX4

В QNX4 используется утилита pax для создания файловых архивов в форматах tar и cpio, а tar и cpio являются просто символическими ссылками на /bin/pax. В зависимости от имени, с которым вызывается программа pax (а это может быть pax, tar или cpio), программа принимает различные опции командной строки. Для установки обновлённой версии pax с опцией -C в командной строке tar необходимо скачать архив pax.YYYYMMDD.tar.gz, скопировать его в корневой каталог QNX4 и выполнить следующие команды:

Код:
# cd /bin
# zcat /pax.YYYYMMDD.tar.gz | tar x

Если по каким-то причинам отсутствует символическа ссылка tar, то её надо создать:

Код:
# ln -sf /bin/pax /bin/tar

Будем рады предложениям по развитию утилиты tar в QNX4 и сообщениям об обнаруженных ошибках.


Ссылки

 - Описание tar в википедии
 - Описание pax в википедии (eng.)
 - Утилита bzip2 для QNX4
 - Утилита установки и удаления ПО из архивов
 - Обновлённая версия tar (pax) для QNX4
« Последнее редактирование: 15 Мая, 2016, 10:16:23 от Олег Большаков » Записан

ilya
Интересующийся

Сообщений: 2


« Ответ #1 : 20 Октября, 2012, 10:25:17 »

Не скачать новый tar везде скачивають какието 59кб с названием архива.
Обьясните почему?
Записан
Олег Большаков
Администратор
Житель форума

Сообщений: 2934



WWW
« Ответ #2 : 20 Октября, 2012, 20:56:40 »

По ссылке из первой темы у меня скачивается архив pax.20110304.tar.gz размером 28 кб.

Код:
$ cksum pax.20110304.tar.gz
4127427150 28212 pax.20110304.tar.gz
Записан

ilya
Интересующийся

Сообщений: 2


« Ответ #3 : 22 Октября, 2012, 06:12:53 »

Спасибо. Но у меня не работает:-(
У меня  Android и hrome.
В виде и эксплорере  работает....
« Последнее редактирование: 22 Октября, 2012, 06:49:56 от ilya » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2016 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 04 Декабря, 2016, 00:23:56