Инструменты пользователя

Инструменты сайта


архиватор_tar

Создание архива

Для создания архива нужно указать tar соответствующее действие, что делается с помощью ключа -c. Кроме того, для упаковки содержимого в файл необходим ключ -f. Далее укажем сначала имя будущего архива, а затем те файлы, которые хотим упаковать. tar -cf txt.tar *.txt Эта команда упакует все файлы с расширением txt в архив txt.tar. Так и создается простейший архив без сжатия. Для использования сжатия не нужно запускать что-либо еще, достаточно указать tar, каким архиватором следует сжать архив. Для двух самых популярных архиваторов gzip и bzip2 ключи будут -z и -j соответственно. tar -cvzf files.tar.gz ~/files упакует папку ~/files со всем содержимым в сжатый с помощью gzip архив. tar -cvjf files.tar.bz2 ~/files создаст аналогичный архив, используя для сжатия bzip2. Ключ -v включает вывод списка упакованных файлов в процессе работы. К сожалению, более продвинутой индикации хода процесса (например, указания степени готовности в процентах) в tar не предусмотрено. Для этого используйте графические архиваторы (например, Xarchiver) или пользуйтесь средствами файл-менеджера. Помимо gzip и bzip2 можно использовать, например, lzma (ключ –lzma) или xz (ключ -J), при этом соответствующий архиватор должен быть установлен в системе.

Распаковка архива

Действие «распаковка» задается с помощью ключа -x. И тут снова потребуется ключ -f для указания имени файла архива. Также добавим ключ -v для визуального отображения хода процесса. tar -xvf /path/to/archive.tar.bz2 распакует содержимое архива в текущую папку. Альтернативное место для распаковки можно указать с помощью ключа -C: tar -xvf archive.tar.lzma -C /path/to/folder

Просмотр содержимого архива Для просмотра содержимого архива используйте следующую команду: tar -tf archive.tar.gz Она выведет простой список файлов и каталогов в архиве. Если же добавить ключ -v, будет выведен подробный список с указанием размера, прав доступа и прочих параметров (так же, как по ls -l)

Прочие возможности tar предоставляет множество полезных возможностей. Например, можно указать файлы и каталоги, которые не будут включены в архив, добавить файлы в существующий архив, взять список объектов для запаковки из текстового файла и много что ещё. Во всем многообразии опций как всегда поможет разобраться man tar или же

tar –help

Опции tar tar   создает и манипулирует потоковыми архивными файлами.

Первая опция tar это индикатор состояния: -c   Создает новый архив содержащий указанные файлы.

-r   Похож на -c, только новые строки добавляются к архиву (опция работает только с некомпрессироваными архивами содержащихся в регулярных файлах). Требует опции -f.   -t   Выводит содержимое архива на стандартный вывод. -u   Похож на -r, но новые строки добавляются только в том случае если они содержат дату изменения более новую, нежели находящаяся в архиве. Данная опция работает только в нескомпрессированых архивах хранящихся в регулярных файлах. Требует опции -f. -x   Распаковывает на диск из архива. Если файл с тем же именем содержится более одного раза в архиве, каждая копия будет распакована, причем более поздняя копия заместит собой более раннюю. В -c, -r, или -u   режимах, каждой указанный файл или директория добавляется к архиву в порядке указания в командной строке. По умолчанию, содержимое каждой директории так же архивируется. В режиме распаковки или списка, вся командная строка читается и парсируется прежде, чем архив будет открыт. Имена путей или шаблонов в командной строке показывают, какие файлы в архиве должны быть обработаны. Стиль шаблонов схож со стилем шаблонов shell'а.

Опции

@archive (только c и r режим) Указаный архив открывается и записи в нем будут применены к текущему архиву. Простой пример: tar -c -f - newfile @original.tar записывает новый архив на стандартный вывод содержащий файл newfile и все записи из original.tar. Для контраста, tar -c -f - newfile original.tar создает новый архив только с двумя записями. Подобно, tar -czf - –format pax @- читает архив из стандартного ввода (чей формат определяется автоматически) и конвертирует его в компрессированый архив gzip pax формата на стандартный вывод. Таким образом tar может быть использован для конвертирования архивов из одного  формата в другой.

-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) (только режим c) Использует указанный формат для создания архива. Поддерживает все типы форматов включая ``cpio, ``pax, ``shar, и ``ustar. Другие форматы могут так же поддерживаться.

-f    file Читать архив или записать архив в указанный файл. Именем файла может являться - для стандартного вывода или ввода.

–fast-read  (-W fast-read)(только режимы x и t) Распаковывает или показывает только первое содержимое архива, которое совпадает с шаблоном или именем файла. Выходит сразу после того как совпал каждый указанный шаблон или имя файла. По умолчанию архив всегда читается до конца, с этого момента могут попадаться множественные записи с одинаковыми именами и, по соглашению, поздние записи перезапишут более ранние. Эта опция предоставляет оптимизацию производительности.

-H  (только режим c и r) Следует по символическим ссылкам в командной строке; цель на которую указывает ссылка будет зархивирована, а не сама ссылка.

-h   (только режим c и r) тоже что  -L

-I тоже что  -T.

–include pattern (-W include=pattern) Обрабатывать только файлы или директории которые совпадают с указанным шаблоном. все исключения указанные в опции –exclude, имеют преимущество над включениями. Если включения не указаны, все строки обрабатываются по умолчанию. Опция –include особенно полезна, при фильтрации архивов. Например, команда: tar -c -f new.tar –include='*foo*' @old.tgz создает новый архив new.tar содержащий только строки из old.tgz содержащий строку `foo'.

-j  (только режим c) Сжимает получившийся архив при помощи bzip2. В режиме извлечения или списка, эта опция игнорируется.  -k  (только режим x) Не перезаписывать существующие файлы. В частности, если файл появляется чаще чем один раз в архиве, поздние копии будут перезаписаны более ранними копиями.

-L  (только режим c и r) Следовать всем символическим ссылкам. Обычно, сами ссылки архивируются. С этой опцией, вместо этого, будет заархивирована цель ссылки.

-l   Если указана опция окружения POSIXLY_CORRECT, это синоним для опции –check-links. Иначе, будет выведена ошибка. Пользователи, которые желают совместимости с GNU tar должны использовать вместо этого опцию –one-file-system.

-m  (только режим x) Не извлекать время модификации. По умолчанию, время модификации установлено во время когда сохранялся архив.

-n (только режим c,r и u) Не архивировать содержимое директорий рекурсивно.

–newer date (-W newer=date) (только режим c,r и u) Только включая файлы и директории более новые чем указанная дата.  –newer-mtime date (-W newer-mtime=date)  (только режим c,r и u) Так же как –newer, за исключением того что опция сравнивает записи mtime вместо записей ctime.

–newer-than file (-W newer-than=file)   (только режим c,r и u) Только включает файлы и директории более новые, чем указанный файл. Сравниваются записи ctimes.

–newer-mtime-than file (-W newer-mtime-than=file)   (только режим c,r и u) Так же как и –newer-than, за исключением того что сравниваются записи mtime вместо ctimes

–nodump (-W nodump)   (только режим c и r) Учитывает флаг файла nodump, пропуская этот файл. –null (-W null)   (использовать с -I, -T, или -X) Имена файлов или шаблоны разделяются null символами, а не символом новой строки. Это часто используется для чтения вывода имен файлов опцией -print0 для find.

-O    (только режимы x и t) В режиме распаковки (-x), файлы будут записаны на  стандартный вывод вместо записи на диск. В режиме списка (-t) список файлов будет записан на stderr, вместо обычного стандартного вывода.

-o    (только режим x) Использовать пользователя и группу пользователей запускающих программу, вместо тех которые указаны в архиве. Это не существенно, до тех пор пока опция -p не определена, и программа не запущена пользователем root. В этом случае, режимы файлов из архива будут восстановлены, но ACL или информация о владельце восстановлена не будет.

–one-file-system (-W one-file-system)   (только режим c,r и u) Не пересекать точки монтирования.

-P Соблюдать имена пути. По умолчанию абсолютное имя пути (то которое начинается с символа /) имеет впереди слеш, который удаляется при создании архива или при распаковке.   -p   (только режим x) Соблюдать файловые разрешения. Попытки восстановить полные разрешения, включая владельца, режимы файлов, флаги файлов и ACL, если они доступны для каждой записи извлекаемой из архива.   –strip-components count (-W strip-components=count)   (только режимы x и t) Удаляет указанные номера из элементов пути. Имена пути с меньшим количеством элементов будут пропущены.   -T    filename В режиме x или t, tar будет читать список имен которые должны быть распакованы из filename. В режиме c, tar будет читать имена которые заархивированы из filename.   -U   (только режим x) Разлинковать файлы перед их созданием.

-v   Подробный вывод. В режимах создания и распаковки, tar покажет каждое имя файла который читается или записывается в архив.

-W   longopt=value Длинная опция (предваряемая –) напрямую поддерживается только в системах которые имеют  функцию getopt_long.

-w   Спрашивает подтверждение для каждого действия.

-X   filename Читает список исключаемых шаблонов, из указанного файла.   -y   (только режим c) Сжимает получившийся архив с помощью bzip2.

-z   (только режим c) Сжимает получившийся архив с помощью gzip2.

Примеры

Следующий пример создает новый архив, назваемый file.tar.gz, который содержит  2 файла source.c и source.h: tar -czf file.tar.gz source.c source.h

Для просмотра подробной таблицы содержимого этого архива: tar -tvf file.tar.gz

Для извлечения всех записей из архива: tar -x

Для перемещения файловых иерархий, вызовите tar так tar -cf - -C srcdir . | tar -xpf - -C destdir либо более традиционно  cd srcdir ; tar -cf - . | (cd destdir ; tar -xpf -) В режиме создания, список файлов и директорий которые должны быть так же заархивированы, могут включать команды смены директорий в форме -Cfoo/baz и включаемые архивы в форме @archive-file. например, командная строка tar -c -f new.tar foo1 [color=brown]@old.tgz[/color] -C/tmp foo2 создаст новый архив new.tar. tar прочитает файл foo1 из текущей директории и добавит его к выходному архиву. затем он прочтет каждую запись из файла old.tgz и добавит эти записи в выходной архив. Наконец, он сменит директорию /tmp и добавит foo2 к выходному архиву.

опции –newer и –newer-mtime поддерживают разнообразные спецификации времени и даты, включая ``12 Mar 2005 7:14:29pm, ``2005-03-12 19:14, ``5 minutes ago, and ``19:14 PST May 1.

архиватор_tar.txt · Последние изменения: 2013/01/25 19:03 — 46.228.1.50