Главная > Программы > TAR Русский перевод man tarЕсть в FreeBSD такой очень удобный и хороший архиватор - tar. Удобный, простой и быстрый. Пожалуй, самый знаменитый *nix архиватор. Понадобилось мне тут, в целях бекапа, запаковать каталог со вложенными файлами, и подпапками. Но по пути следования архиватора было пара подкаталогов, которые архивировать не следовало. Начал вспоминать опции команды tar, которые позволили бы исключить из процесса архивации определенные файлы. Сел читать мануал ($ man tar). Затянулось чтение: А потом я вспомнил, что у Лиссяры на сайте есть уже этот самый ман на русском языке. Посмотрел - точно есть. Решил закинуть этот перевод и себе в блог. Пригодится еще. * * * man tarАвтор перевода: Andy.Источник: www.lissyara.su
tar - манипулирует ленточными архивами Сценарий tar [bundled-flags <args>] [<file> | <pattern> :] Описание tar создает и манипулирует потоковыми архивными файлами. Первая форма комманд содержит опцию "bundled". Такое использование делается в целях совместимости по историческим соображениям. За подробной информацией обращайтесь к разделу COMPATIBILITY. Остальные формы команд показывают предпочтительное использвание. Первая опция tar это индикатор состояния из следующего списка: В -c, -r, или -u режимах, каждай указанный файл или директория добавляется к архиву в порядке указания в командной строке. По умолчанию, содержимое каждой директории так же архивируется. В режиме распаковки или списка, вся командная строка читается и парсируется прежде,чем архив будет открыт. Имена путей или шаблонов в командной строке показывают,какие файлы в архиве должны быть обработаны. Стиль шаблонов схож со стилем шаблонов shell'а как описано в документе на tcsh(1). Опции Если не указано иначе, опции применяются во всех режимах. @archive (только c и r режим) Указаный архив открывается и записи в нем будут применены к текущему архиву. Простой пример, -b blocksize Указывает размер блока, в 512 байтовых записях, для ленточного накопителя. Как правило, данный аргумент необходим только тогда, когда происходит чтение или записть на ленточный накопитель, и обычно не нужен даже тогда когда размер блока по умолчанию 20 записей(10240 байт) что очень распространено. -C directory В режиме c и r, данная опция меняет директорию прежде чем добавит следующие файлы. В режиме x директория меняется после открытия архива, но прежде распаковки содержимого из архива. -check-links (-W check-links)(только c и r режимы). Выводит предупреждающее сообщение до тех пор, пока все ссылки на каждый файл не будут заархивированы. -exclude pattern (-W exclude=pattern) -format format (-W format=format) -f file -fast-read (-W fast-read)(только
режимы x и t) Распаковывает или показывает только первое содержимое
архива, которое совпадает с шаблоном или именем файла. Выходит сразу
после того как совпал каждый указанный шаблон или имя файла. По
умолчанию архив всегда -H (только режим c и r) Следует по символическим ссылкам в командной строке; -h (только режим c и r) Синоним для -L -I Синоним для -T. -include pattern (-W include=pattern) -j (только режим c) Сжимает получившийся архив при помощи bzip2(1). В режиме извлечения или списка, эта опция игнорируется. Учтите следующее, в отличии от -k (только режим x) Не перезаписывать существующие файлы. В частности, если файл появляется чаще чем один раз в архиве, поздние копии будут перезаписаны более ранними копиями. -L (только режим c и r) Следовать всем символическим ссылкам. Обычно, сами -l Если указана опция окружения POSIXLY_CORRECT, это синоним для опции -check-links. Иначе, будет выведена ошибка. Пользователи, которые желают -m (только режим x) Не извлекать время модификации. По умолчанию, время модификации установлено во время когда сохранялся архив. -n (только режим c,r и u) Не архивировать содержимое директорий рекурсивно. -newer date (-W newer=date) (только режим c,r и u) Только включая файлы и директории более новые чем указанная дата. Эта опция сравнивает записи ctimes. -newer-mtime date (-W newer-mtime=date) -newer-than file (-W newer-than=file) -newer-mtime-than file (-W newer-mtime-than=file) -nodump (-W nodump) -null (-W null) -O (только режимы x и t) В режиме распаковки (-x), файлы будут записаны на -o (только режим x) Использовать пользователя и группу пользователей запускающих программу, вместо тех которые указаны в архиве. Это не существенно, до тех пор пока опция -p не определена, и программа не запущена пользователем root. В этом случае, режимы файлов из архива будут восстановлены, но ACL или информация о владельце восстановлена не будет. -one-file-system (-W one-file-system) -P Соблюдать имена пути. По умолчанию абсолютное имя пути (то которое начинается с символа /) имеет впереди слеш, который удаляется при создании архива или при распаковке. Так же tar откажется распаковывать записи в архиве, чьи имена пути содержат .. или чьи целевые директории будут изменены символической ссылкой. Эта опция отменяет данное поведение. -p (только режим x) Соблюдать файловые разрешения. Попытки восстановить полные разрешения, включая владельца, режимы файлов, флаги файлов и ACL, если они доступны для каждой записи извлекаемой из архива. По умолчанию, только что созданные файлы, принадлежат пользователю запустившему tar, режимы файла восстанавливаются для только что созданых регулярных файлов, и все другие типы записей получают разрешения по умолчанию. Если tar запущен пользователем root, по умолчанию будет восстановлен владелец, если опция -o не определена. -strip-components count (-W strip-components=count) -T filename В режиме x или t, tar будет читать список имен которые должны быть распакованы из filename. В режиме c, tar будет читать имена которые заарихиврованы из filename. Специальное имя "-C" в строке вызовет изменение директории указанной следующей строкой. Имена заканчиваются символом новой строки, если не указана опция -null. Опция -null так же выключит спецальную обработку строк содержащих "-C". -U (только режим x) Разлинковать файлы перед их созданием. Без этой опции, tar перезапишет существующие файлы без сохранения существующий жестких ссылок. С этой опцией существующие жесткие ссылки будут сломаны, так же как и любые символические ссылки могут изменить местонахождение распаковываемых файлов. -v Подробный вывод. В режимах создания и распаковки, tar покажет каждое имя файла который читается или записывается в архив. В режиме списка, tar произведет вывод соответствующий команде ls(1). Дополнительные опции -v предоставят дополнительный вывод. -W longopt=value Длиная опция (предваряемая -) напрямую поддерживается только в системах которые имеют функцию getopt_long(3). Опция -W может использоваться для доступа к длиным операциям в системах, которые не поддерживают эту функцию. -w Спрашивает подтверждение для каждого действия. -X filename Читает список исключаемых шаблонов, из указанного файла. смотрите опцию -exclude для более детальной информации об обработке исключений. -y (только режим c) Сжимает получившийся архив с помощью bzip2(1). Режиме распаковки или списка, эта опция игнорируется. учтите следующее, в отличие от других реализаций tar, эта утилита распознает компрессию bzip2 автоматически, когда читает архив. -z (только режим c) Сжимает получившийся архив с помощью gzip2(1). Режиме распаковки или списка, эта опция игнорируется. учтите следующее, в отличие от других реализаций tar, эта утилита распознает компрессию gzip2 автоматически, когда читает архив. Окружение Следующие переменные изменят запуск tar: LANG Используемая локаль. Смотрите environ(7) для более детальной информации. POSIXLY_CORRECT Если эта переменная окружения определена, опция -l интерпретируется в соответствии с ISO/IEC 9945-1:1996 ("POSIX.1"). TAPE ленточный накопитель по умолчанию. опция -f отменяет эту переменную. TZ Временая зона используемая при отображении дат. Смотрите environ(7) для Файлы /dev/sa0 ленточный накопитель по умолчанию. если не отменено окружение TAPE опцией Статус выхода утилита tar завершается с 0 при успешном выходе, и >0 если возникли ошибки. Примеры Следующий пример создает новый архив, назваемый file.tar.gz, который содержит Для просмотра подробной таблицы содержимого этого архива: Для извлечения всех записей из архива на ленточный накопитель установленный по умолчанию: Для перемещения файловых иерархий, вызовите tar так В режиме создания, список файлов и директорий которые должны быть
так же заархивированы, могут включать команды смены директорий в форме -Cfoo/baz и включаемые архивы в форме @archive-file. например, командная строка опции -newer и -newer-mtime поддерживают разнообразные спецификации времени и даты, включая "12 Mar 2005 7:14:29pm", "2005-03-12 19:14", "5 minutes ago", and "19:14 PST May 1". Совместимость Формат связанных аргументов поддерживается для совместимости с
историческими реализациями. Он содержит инициируемое слово (без символа
- в начале) в котором каждый символ указывает на опцию. Аргументы
следуют как раздельные слова. Порядок документов должен совпадать с
порядком следования символов в связаном слове. Например, Для максимальной переносимости, скрипты которые вызывают tar должны использовать связные аргументы описаные выше, должны ограничить себя режимами c, t, и x и опциями b, f, m, v, и w. В системах которые поддерживают getopt_long(), дополнительные длиные опции Безопасность Определенные проблемы безопасности рапространены во многих архиваторах, включая tar.
Частично тщательно обработанные архивы могут попросить извлек файлы в
место отличное от целевой директории. потенциально это может быть
использовано для того что бы невольно заставить пользователя
перезаписать файлы, которые он не хотел перезаписывать. Если архив
извлекается суперпользователем, любой файл в системе может быть
потенциально перезаписан. Это может случиться по трем причинам. Смотрите так же bzip2(1), cpio(1), gzip(1), mt(1), pax(1), shar(1), libarchive(3), Стандарты На данный момент нет стандарта POSIX для команды tar он появился в ISO/IEC 9945-1:1996 ("POSIX.1") но был выброшен из IEEE Std 1003.1-2001 ("POSIX.1"). Опции используемые данной реализацией были разработаны с учетом множества реализаций tar, так же как и с учетом старой спецификации POSIX и текущей спецификации POSIX. Ustar и pax файловые форматы обмена были определены IEEE Std История команда tar появилась в Седьмой
Редакции Unix. Были некоторые другие реализации, многие из них
расширяли формат файла. Реализация John Gilmore'а pdtar находящаяся в общем владении, в некотором роде повлияла и сформировала основы GNU tar. GNU tar Это полная новая реализация основанная на библиотеке libarchive(3). Ошибки POSIX и GNU жестко расходятся в том, какое значение несет опция -l. Из-за потенциальной угрозы, когда кто-то ожидает одного поведения а получает другое, опция -l преднамеренно отсутствует в данной реализации. Опция -C dir может отличатся от исторической реализации. Весь вывод архива написан в блоках корректного размера, даже если
вывод был сжат. Дополняет ли последний блок полный размер блока,
зависит от формата выходного устройства. Для tar и cpio,
последний выходной блок добавляется к полному размеру блока, если вывод
был произведен на стандартный вывод или в символьное или блочное
устройство, такое как ленточный накопитель. Если вывод был записан в
файл, последний блок не добавляется. Многие утилиты сжатия, включая gzip(1) и bzip2(1) жалуются об отсутствии нулевого добавления в момент декомпрессии архива созданного tar'ом, режимы r и u требуют что бы архив был несжатым и находился в файле на диске. Другие архивы могут быть модифицированы используя режим c, с расширением @archive-file. Для архивации файла называемого @foo или -foo вы должны указать их как ./@foo или ./-foo, соответственно. В режиме создания первые ./ всегда удаляются. Первый / удаляется пока не будет Нужна более лучшая поддержка для выбора файлов при создании и распаковки. Нет поддержки многотомных архивов или архивирования редких файлов. конвертирование между различными архивными форматами (таких как tar или cpio) используя опцию @- может вызвать потерю информации (последствие несовместимых Есть альтернативные длиные опции, для многих коротких опций которые преднамеренно не задокументированы. Главная > Программы > TAR |