tar: практика использования |
![]() |
Добавил(а) microsin |
Архиватор tar совместно с компрессором gzip в сообществе Linux это довольно часто используемый инструмент не только для создания сжатых архивов, но и для переноса файлов с одной системы на другую, поскольку позволяет проще копировать ссылки и сбрасывать атрибуты разрешения доступа, привязанные к пользователям и группам. [Упаковка и распаковка] Ниже показана команда упаковки файлов и папок в архив gzip, без сохранения атрибутов доступа. Вместо имен файлов и папок можно указывать wildcard-шаблоны наподобие *.c, *, *.h?? и т. п. Опция c задает создание архива (compress), z тип компрессии (.gz), f указывает файл как места назначения (file). $ tar -czf имя_архива.tar.gz файл1 файл2 папка1 папка2 ... Ниже показана распаковка. Запомнить команду просто, здесь вместо c указывается x, что означает извлечение из архива (eXtraction). В текущий каталог из архива будет распаковано содержимое файл_или_папка. $ tar -xzf имя_архива.tar.gz файл_или_папка Можно вместо z можно указать другой вид компрессии: маленькая j задает bzip2 (.bz2), заглавная J задает xz (.xz). Дефис '-' при для опций можно не указывать. Распаковка с выводом списка распакованных файлов: $ tar -xvf img.tar [Как вывести содержимое архива tar.gz] Иногда бывает необходимо "заглянуть" в архив, чтобы найти какой-то конкретный файл. Сделать это можно следующими командами, в которых указана опция t [1]. Опция v задает подробный вывод информации (verbose): $ tar -ztvf имя_архива.tar.gz $ tar -tvf имя_архива.tar.gz $ tar -tvf имя_архива.tar.gz шаблон_поиска Если нужно просмотреть содержимое не сжатого tar-архива, то можно пропустить некоторые опции. Пример 1. Просмотр списка содержимого не сжатого tar-архива file.tar: $ tar -tvf file.tar Пример 2. Просмотр списка содержимого архива file.tar.gz: $ tar -ztvf file.tar.gz Пример 3. Просмотр списка содержимого архива file.tar.bz2: $ tar -jtvf file.tar.bz2 Пример 4. Поиск определенных файлов. Ниже в примере показан поиск файлов на языке C, у которых расширение *.c в архиве projects.tar.bz2. $ tar -tvf projects.tar.bz2 --wildcards '*.c' Конечно, выводимый список можно фильтровать с помощью | grep маска, например: $ tar -tvf projects.tar.bz2 | grep '*.c' [Как распаковать только один файл (или только одну папку)] Иногда архив большой, распаковывается целиком долго, а нужно извлечь только один файл (или папку с файлами). Сначала командой с опцией t и фильтрацией grep надо узнать полное имя файла, как он сохранен в архиве [1]. Например, нас интересует папка rtl819x: $ tar -jtvf file.tar.bz2 | grep rtl819x Предположим, что путь до нужной нам папки sdk/rtl819x, тогда извлечь её можно командой [2]: $ tar -zxvf file.tar.gz sdk/rtl819x [Краткий справочник] -f filename : использовать имя архива filename. -j : фильтрация архива по bzip2, используется для распаковки tar-файлов .bz2. -J (заглавная J): фильтрация архива по xz, используется для распаковки tar-файлов .xz. -t : вывести список содержимого архива. -v : вывод подробного списка обрабатываемых файлов. --wildcards : использовать шаблон для сопоставления с именами файлов. Вместе с wildcards dы должны использовать одну из опций из '-Acdtrux', '--delete' или '--test-label'. -x filename : распаковка архива. -z : фильтрация архива по gzip, с которой мы можем открыть сжатый (т. е. распаковать) tar-файл .gz. Краткую справку по всем опциям можно получить командой tar --help, подробную справку командой man tar. [Ссылки] 1. List the contents of a tar or tar.gz file site:cyberciti.biz. |