Использование 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 команда может иметь следующий вид:
или просто
Указывать опцию
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]