Tar архивация: Архивирование данных с помощью архиватора tar.
Архивирование данных с помощью архиватора tar.
    Утилита tar первоначально использовалась для создания архивов на магнитной ленте ( tar — tape archive ).
В настоящее время tar используется для создания архивов на любых носителях и практически, является основным средством хранения файлов и каталогов в одном
файле специального формата. Главным достоинством формата tar является то, что архив содержит не только сами данные архивируемых файлов,
но и информацию о структуре каталогов, владельце, и временнЫе метки ( время создания, модификации, доступа ).
Архиватор tar не выполняет сжатие архивируемых данных, он всего лишь упаковывает множество файлов в один файл, размер которого приблизительно
равен суммарному размеру упакованных файлов ( немного больше за счет добавления собственных служебных заголовков ). Для сжатия же, используются внешние
программы ( gzip, bzip2 и т.п. )
Для получения подсказки по использованию tar введите команду:
tar –help
На экран выдается справка с кратким описанием назначения программы и параметров
командной строки:
Использование: tar [ПАРАМЕТР...] [ФАЙЛ]... GNU tar предназначен для сохранения файлов на магнитную ленту или в архив на диске и для восстановления отдельных файлов из архива. Примеры: tar -cf archive.tar foo bar # Создание archive.tar из файлов foo и bar. tar -tvf archive.tar # Вывод подробного списка всех файлов в архиве archive.tar. tar -xf archive.tar # Извлечение всех файлов из archive.tar. Основной режим работы: -A, --catenate, --concatenate присоединение tar-файлов к архиву -c, --create создание нового архива -d, --diff, --compare поиск различий между архивом и файловой системой --delete удаление из архива (не на магнитных лентах!) -r, --append добавление файлов в конец архива -t, --list вывод списка содержимого архива --test-label проверка метки тома архива и выход -u, --update добавление в архив только более новых файлов -x, --extract, --get извлечение файлов из архива Модификаторы: --check-device проверять номера устройств при создании инкрементных архивов (по умолчанию) -g, --listed-incremental=ФАЙЛ обработка добавочного резервирования нового формата GNU -G, --incremental обработка добавочного резервирования старого формата GNU --ignore-failed-read не завершать работу при ненулевом статусе для нечитаемых файлов --level=N уровень копирования для созданного разностного архива со списком -n, --seek доступен поиск по архиву --no-check-device не проверять номера устройств при создании инкрементных архивов --no-seek поиск по архиву недоступен --occurrence[=N] обработка только N-ого вхождения для каждого файла в архиве. Эта опция верна только в сочетании с одной из подкоманд --delete, --diff, --extract или --list, и когда список файлов задан либо в командной строке, либо через опцию -T. По умолчанию N равен 1. --sparse-version=MAJOR[.MINOR] установить версию используемого формата разрежения (подразумевает --sparse) -S, --sparse эффективная обработка разрежённых файлов Управление перезаписью: -k, --keep-old-files не перезаписывать существующие файлы при извлечении --keep-newer-files не перезаписывать существующие файлы, которые более новые, чем их копии в архиве --no-overwrite-dir сохранение метаданных существующих каталогов --overwrite перезапись существующих файлов при извлечении --overwrite-dir перезапись существующих файлов при извлечении (по умолчанию) --recursive-unlink очистка всей иерархии до извлечения каталога --remove-files удаление файлов после их добавления в архив -U, --unlink-first удаление каждого файла до извлечения поверх него -W, --verify попытка проверить архив после его записи Выбор выходного потока: --ignore-command-error игнорировать коды завершения дочерних процессов --no-ignore-command-error считать ненулевые коды завершения дочерних процессов как ошибку -O, --to-stdout извлекать файлы на стандартный вывод --to-command=КОМАНДА перенаправлять извлечённые файлы в другую программу Обработка атрибутов файлов: --atime-preserve[=СПОСОБ] сохранять время доступа скопированных файлов путём восстановления времени после чтения (СПОСОБ='replace'; используется по умолчанию) или не установки времени в первую очередь (СПОСОБ='system') --delay-directory-restore не устанавливать время изменения и права доступа извлечённых каталогов до завершения процесса извлечения --group=ИМЯ принудительно устанавливать ИМЯ в качестве группы для добавленных файлов --mode=РЕЖИМ принудительно устанавливать (символьный) РЕЖИМ доступа для добавляемых файлов --mtime=ДАТА-ИЛИ-ФАЙЛ устанавливать для добавленных файлов mtime из ДАТЫ-ИЛИ-ФАЙЛА -m, --touch не извлекать время изменения файла --no-delay-directory-restore отменить действие параметра --delay-directory-restore --no-same-owner извлекать файлы как свои собственные (по умолчанию для обычных пользователей) --no-same-permissions применять umask пользователя при извлечении прав доступа из архива (по умолчанию для обычных пользователей) --numeric-owner использовать числа вместо имён владельца/группы --owner=ИМЯ принудительно устанавливать ИМЯ в качестве владельца для добавленных файлов -p, --preserve-permissions, --same-permissions извлекать информацию о правах доступа к файлу (по умолчанию для суперпользователя) --preserve эквивалент -p и -s --same-owner попытаться извлечь файлы с тем же владельцем, что и в архиве (по умолчанию для супепользователя) -s, --preserve-order, --same-order сортировать извлекаемые имена в том же порядке, что и в архиве Выбор и переключение устройств: -f, --file=АРХИВ использовать файл или устройство АРХИВ --force-local файл архива является локальным, даже если содержит двоеточие -F, --info-script=ИМЯ, --new-volume-script=ИМЯ запустить скрипт по окончании каждой ленты (подразумевается использование -М) -L, --tape-length=N сменить ленту после записи ЧИСЛО x 1024 байт -M, --multi-volume создание/листинг/извлечение многотомных архивов --rmt-command=КОМАНДА использовать указанную КОМАНДУ rmt вместо rmt --rsh-command=КОМАНДА использовать удалённую КОМАНДУ вместо rsh --volno-file=ФАЙЛ использовать/обновлять номера тома в ФАЙЛЕ Разбиение на блоки: -b, --blocking-factor=БЛОКИ число БЛОКОВ x 512 байт на запись -B, --read-full-records заново разбивать на блоки при чтении (для каналов 4.2BSD) -i, --ignore-zeros игнорировать нулевые блоки в архиве (т.е. EOF) --record-size=N ЧИСЛО байт на запись, кратное 512 Формата архива: -H, --format=ФОРМАТ создать архив в указанном формате -Y, --lzma filter the archive through lzma (depreceated flag) ФОРМАТОМ может быть: gnu формат GNU tar 1.13.х oldgnu формат GNU как в tar
Для получения краткой справки по использованию tar введите команду:
tar –usage
При выполнении данной команды, отображаются
варианты использования параметров командной строки без каких-либо пояснений:
Использование: tar [-AcdrtuxGnSkUWOmpsMBiajJzZhPlRvwo?] [-g ФАЙЛ] [-f АРХИВ] [-F ИМЯ] [-L N] [-b БЛОКИ] [-H ФОРМАТ] [-V ТЕКСТ] [-I ПРОГ] [-C КАТАЛОГ] [-K ИМЯ-ЧЛЕНА] [-N ДАТА-ИЛИ-ФАЙЛ] [-T ФАЙЛ] [-X ФАЙЛ] [--catenate] [--concatenate] [--create] [--diff] [--compare] [--delete] [--append] [--list] [--test-label] [--update] [--extract] [--get] [--check-device] [--listed-incremental=ФАЙЛ] [--incremental] [--ignore-failed-read] [--level=N] [--seek] [--no-check-device] [--no-seek] [--occurrence[=N]] [--sparse-version=MAJOR[.MINOR]] [--sparse] [--keep-old-files] [--keep-newer-files] [--no-overwrite-dir] [--overwrite] [--overwrite-dir] [--recursive-unlink] [--remove-files] [--skip-old-files] [--unlink-first] [--verify] [--ignore-command-error] [--no-ignore-command-error] [--to-stdout] [--to-command=КОМАНДА] [--acls] [--atime-preserve[=СПОСОБ]] [--delay-directory-restore] [--group=ИМЯ] [--mode=РЕЖИМ] [--mtime=ДАТА-ИЛИ-ФАЙЛ] [--touch] [--no-acls] [--no-delay-directory-restore] [--no-same-owner] [--no-same-permissions] [--no-selinux] [--no-xattrs] [--numeric-owner] [--owner=ИМЯ] [--preserve-permissions] [--same-permissions] [--preserve] [--same-owner] [--preserve-order] [--same-order] [--selinux] [--xattrs] [--file=АРХИВ] [--force-local] [--info-script=ИМЯ] [--new-volume-script=ИМЯ] [--tape-length=N] [--multi-volume] [--rmt-command=КОМАНДА] [--rsh-command=КОМАНДА] [--volno-file=ФАЙЛ] [--blocking-factor=БЛОКИ] [--read-full-records] [--ignore-zeros] [--record-size=N] [--format=ФОРМАТ] [--old-archive] [--portability] [--pax-option=keyword[[:]=значение][,keyword[[:]=значение]]...] [--posix] [--label=ТЕКСТ] [--auto-compress] [--use-compress-program=ПРОГ] [--bzip2] [--xz] [--lzip] [--lzma] [--lzop] [--no-auto-compress] [--gzip] [--gunzip] [--ungzip] [--compress] [--uncompress] [--add-file=ФАЙЛ] [--backup[=УПРАВЛЕНИЕ]] [--directory=КАТАЛОГ] [--exclude=ШАБЛОН] [--exclude-backups] [--exclude-caches] [--exclude-caches-all] [--exclude-caches-under] [--exclude-tag=ФАЙЛ] [--exclude-tag-all=ФАЙЛ] [--exclude-tag-under=ФАЙЛ] [--exclude-vcs] [--dereference] [--hard-dereference] [--starting-file=ИМЯ-ЧЛЕНА] [--newer-mtime=ДАТА] [--no-null] [--no-recursion] [--no-unquote] [--null] [--newer=ДАТА-ИЛИ-ФАЙЛ] [--after-date=ДАТА-ИЛИ-ФАЙЛ] [--one-file-system] [--absolute-names] [--recursion] [--suffix=СТРОКА] [--files-from=ФАЙЛ] [--unquote] [--exclude-from=ФАЙЛ] [--strip-components=N] [--transform=РАСШИРЕНИЕ] [--xform=РАСШИРЕНИЕ] [--anchored] [--ignore-case] [--no-anchored] [--no-ignore-case] [--no-wildcards] [--no-wildcards-match-slash] [--wildcards] [--wildcards-match-slash] [--checkpoint[=N]] [--checkpoint-action=ДЕЙСТВИЕ] [--index-file=ФАЙЛ] [--check-links] [--no-quote-chars=СТРОКА] [--quote-chars=СТРОКА] [--quoting-style=СТИЛЬ] [--block-number] [--show-defaults] [--show-omitted-dirs] [--show-transformed-names] [--show-stored-names] [--totals[=СИГНАЛ]] [--utc] [--verbose] [--warning=KEYWORD] [--interactive] [--confirmation] [--help] [--restrict] [--usage] [--version] [ФАЙЛ]...
Можно также воспользоваться встроенной справочной системой:
man tar
Примеры использования tar
tar –create –file=archive.tar file1 file2 — создать в текущем каталоге архив archive.tar из файлов ffile1 и file2
tar -cf archive.tar file1 file2 — то же, что и в предыдущем примере, но с использованием синтаксиса коротких опций ( сокращенных параметров командной строки: -c соответствует —create, -f соответствует —file. При использовании коротких опций, их можно объединять – параметры -c -f файл.tar можно вводить как -cf файл.tar.
tar -cvf archive.tar file1 file2 — то же, что и в предыдущем примере, но с выдачей подробной информации о ходе архивирования .
tar -cvf /backup/archive.tar /home/user/* — создать в каталоге backup архив archive.tar из файлов домашнего каталога пользователя user. При использовании данного формата команды, нередко возникает вопрос, почему tar не включает в архив скрытые файла и каталоги, имена которых начинаются с точки. Это не столько проблема tar, сколько проблема оболочки пользователя ( bash ), которая трактует шаблон * как ”все файлы, исключая скрытые”. Команде tar ( как и прочим командам Linux ) передается не шаблон, а уже подошедший под него файл или группа файлов. Определением подходящих под шаблон объектов занимается сама командная оболочка, в которой исходя из соображений безопасности, шаблон ”*” не включает имена файлов, начинающиеся с точки. Поэтому, для того чтобы создать архив, включающий скрытые файлы данным шаблоном пользоваться не нужно, а просто указать имя архивируемого каталога, например /home/user/:
tar -cvf /backup/archive.tar /home/user/
tar -zcvf /backup/archive.tar.gz /home/user/ — создать архив всех файлов домашнего каталога пользователя user с использованием сжатия данных с помощью gzip
tar -jcvf /backup/archive.tar.bz2 /home/user/ — создать архив всех файлов домашнего каталога пользователя user с использованием сжатия данных с помощью bzip2
tar -acvf /backup/archive.tar.bz2 /home/user/ — создать архив всех файлов домашнего каталога пользователя user с использованием сжатия данных с помощью программы, определяемой автоматически по
имени файла. В данном примере имя архива имеет расширение .bz2 и будет использована программа сжатия bzip2 . Если бы в имени архива имелось расширение .gz, то использовалась
бы программа сжатия данных gzip. Если по имени файла архива невозможно определить программу сжатия,
то архив создается, но сжатие не выполняется. При распаковке архива параметр -a указывать не обязательно, поскольку тип сжатия определяется автоматически в любом случае.
tar -tvf archive.tar — отобразить список файлов и каталогов архива archive.tar
tar -tvf archive.tar > listfiles — то же, что и в предыдущем примере, но с выдачей результатов в текстовый файл listfiles
tar –xvf archive.tar — распаковать (разархивировать) в текущий каталог содержимое архива archive.tar
tar –xvf /backup/archive.tar –C /home2/ — извлечь содержимое архива /backup/archive.tar в каталог /home2.
tar –xv –keep-newer-file –f /backup/archive.tar –C /home2 — то же, что и в предыдущем примере, только перезапись существующих файлов не будет выполнена, если они того же возраста или более новые.
tar –xvkf /backup/archive.tar –C /home2 — если при извлечении данных из архива, будет попытка перезаписи существующего файла, то программа tar завершится ошибкой.
tar –exclude=*log* -zcvf /backup/archive.tar.gz /var/ — при архивировании исключить файлы журналов.
tar —exclude-backups —exclude-caches —exclude-tag-all=excludes.txt -zcvf /backup/home.tar.gz /home/ — при архивировании исключить файлы бэкапов, кэш и все каталоги, в которых присутствует файл с именем excludes.txt
Утилита tar позволяет создавать инкрементные архивы, т.е. содержащие в себе только те файлы, которые были изменены с момента полного или добавочного резервного копирования.
При использовании такого режима архивирования выполняется команда tar с параметром —listed-incremental=ФАЙЛ ( -g ФАЙЛ ), где ФАЙЛ указывает на файл метаданных, в котором хранится информация о состоянии инкрементного архива. Если такого файла не существует, то при выполнении команды создается полный архив, а также новый файл метаданных, который будет использоваться в последующих этапах создания инкрементных резервных копий.
tar -zcvf /backup/home.tar.gz —backup=numbered —listed-incremental=/backup/home_meta /home/ — создать инкрементный архив каталога /home. Параметр —backup=numbered указывает на то, что нужно создавать нумерованные резервные копии. Полный архив, в данном примере, будет создан в виде файла с именем home.tar.gz, а последующие инкрементные архивы будут создаваться с именами home.tar.gz.~1~, home.tar.gz.~2~ и т.д. Для восстановления данных из инкрементного архива нужно сначала разархивировать полный архивный файл, а затем – инкрементные:
tar -zxvf /backup/home.tar.gz -C /home2 — извлечь в каталог /home2 содержимое полного архива.
tar -zxvf /backup/home.tar.gz.~1~ -C /home2 — извлечь в каталог /home2 содержимое первого инкрементного архива.
tar -zxvf /backup/home.tar.gz.~2~ -C /home2 — извлечь в каталог /home2 содержимое второго инкрементного архива.
Использование инкрементного архивирования в tar позволяет, например, создавать автоматически с помощью планировщика периодические резервные копии ( ежедневно, еженедельно, ежемесячно и т.п. )
Если вы желаете помочь развитию проекта, можете воспользоваться кнопкой «Поделиться» для своей социальной сети
В начало страницы | На главную страницу сайта
Как создать архив в Linux tar, zip без сжатия и со сжатием файлов
Как создать архив в linux. В этой статье рассмотрим популярные средства для архивирования файлов и папок. Зачем нужно архивирование? Для удобства хранения и перемещения файлов. С его помощью происходит объединение нескольких файлов или папок в один файл.
ОГЛАВЛЕНИЕ:Показать
Следует понимать, что архивация и сжатие это не одно и тоже. Можно произвести архивацию без сжатия (уменьшения объема конечного файла) а можно сжать архив для экономии места на диске. Все зависит от задач.
Работа с архивами при помощи утилиты TAR
Стандартная утилита для создания архивов в linux — «tar». Синтаксис команды такой:
tar опции имя_файла_архива файл_для_архивации
tar опции имя_файла_архива файл_для_архивации |
Основные опции:
- c — создание нового архива
- f — имя файла для архива
- r — добавление файлов в конец архива
- x — извлечение файлов из архива
- t — вывод списка содержимого архива
- v — вывод сведений о работе программы
- -C — распаковать в указанную папку
Например. У меня есть папка «Test» и я хочу создать архив tar. Для этого нужно дать команду:
Для того, что бы увидеть работу программы можно использовать опцию «v». Будет выведено какие файлы и папки добавлены в архив. Например:
Теперь давайте рассмотрим как добавить файл или папку в уже созданный архив. Для этого нужно использовать опцию «r». Пример. Добавить файл «file.txt» в архив «Test.tar». Используем команду:
Что бы просмотреть содержимое архива tar используйте команду:
Будет отображено содержимое архива «Test». Теперь давайте рассмотрим как распаковать архив tar. Для этого дайте команду:
Архив будет распакован в текущую папку. Как быть если нужно распаковать не весь архив а извлечь только нужный файл. Допустим я хочу извлечь файл «file.txt». Для этого нужно дать команду:
tar xf Test.tar Test/file.txt
tar xf Test.tar Test/file.txt |
Для того, чтобы извлечь архив в другой каталог используйте атрибут «-C». Например требуется распаковать архив в папку «Driver» находящуюся в директории «Zhelezo». Выполню команду:
tar xf Test.tar -C Zhelezo/Driver/
tar xf Test.tar -C Zhelezo/Driver/ |
Думаю с архивированием и разархивированием файлов и папок в линукс без сжатия все понятно.
Создание архива в Linux с использованием сжатия
Переходим к созданию сжатых архивов. Рассмотрим два основных метода сжатия Gzip (быстрее работает) и Bzip2 (лучше сжимает).
Пример сжатия методом Gzip (утилита сжатия и восстановления (декомпрессии) файлов, использующая алгоритм Deflate):
Для сжатия gzip используем tar z и расширение .gz :
tar zcvf Test.tar.gz Test
tar zcvf Test.tar.gz Test |
Пример сжатия Bzip2 (утилита для сжатия данных с помощью алгоритма Барроуза — Уилера.):
Для сжатия Bzip2 используем tar j и расширение .bz2 :
tar jcvf Test.tar.bz2 Test
tar jcvf Test.tar.bz2 Test |
Получили два архива «Test.tar.bz2» и «Test.tar.gz».
Распаковать сжатые файлы можно способом описанным выше либо так же используя tar z и tar j . Например. Для распаковки gzip используем команду:
Для распаковки bzip команду:
Как разделить большой архив tar на несколько файлов определенного размера?
Для передачи по сети файла большого размера иногда необходимо разделить его на более мелкие части. В данном примере я расскажу как сделать это с помощью утилиты split. Работа с утилитой проста. Задаем ключ, затем указываем файл и префикс. Разберем на примере. Я «разобью» архив «Test.tar» на части по 10 килобайт:
split -b 10K Test.tar «Test.tar.part»
split -b 10K Test.tar «Test.tar.part» |
Размер задаётся целым числом и необязательной единицей изменения
(пример: 10K это 10*1024). Единицы изменения:
K, M, G, T, P, E, Z, Y (степень 1024) или KB, MB, … (степень 1000).
Можно разбить не по размеру а по частям указав количество. Например я разделю тестовый архив на 3 части. Для этого нужно использовать ключ -n . Пример:
split -n3 Test.tar «Test.tar.part»
split -n3 Test.tar «Test.tar.part» |
Итак мы поняли как разделить архив и по размеру и обозначив желаемое количество частей. Теперь давайте посмотрим как собрать разделенный архив. Для этого будем использовать утилиту cat . Для объединения всех частей архива вводим команду:
cat Test.tar.parta* > Test.tar
cat Test.tar.parta* > Test.tar |
Символ «*» после «.parta» обозначает, что нужно использовать все файлы с именем «parta». После выполнения команды файл будет объединен.
Создание и распаковка ZIP-архивов в linux
Переходим к работе с архивами zip в linux. Для работы нам потребуется утилита zip . По умолчанию она не установлена. Для инсталляции выполним команду:
Для создания архива зип нужно указать команду zip затем имя будущего архива с расширением .zip , затем имя файла для архивации:
zip имя_файла.zip имя_файла.txt
zip имя_файла.zip имя_файла.txt |
Если нужно добавить в архив сразу несколько файлов то перечислите их через пробел. Например:
zip archive.zip file.txt file2.txt file3.txt
zip archive.zip file.txt file2.txt file3.txt |
Для архивирования папки используйте ключ -r. Например:
zip -r archive.zip Folder
zip -r archive.zip Folder |
Создаем zip-архив с паролем в Linux
С помощью утилиты «zip» можно создавать архивы с паролем. Для этого используется опция -P. Например:
zip -P пароль имя_архива.zip имя_файла
zip -P пароль имя_архива.zip имя_файла |
Так, что бы создать архив secure.zip в котором будет заархивирован файл «file.txt» с паролем «passwd» введите команду:
zip -P passwd secure.zip file.txt
zip -P passwd secure.zip file.txt |
Для того, что бы задавая пароль никто его не увидел укажите ключ -e или —encrypt . Например. Чтобы создать зашифрованный архив файла «file.txt» с именем «secure.zip» укажите команду:
zip -e secure.zip file.txt
zip -e secure.zip file.txt |
После выполнения команды будет выдан запрос на задание пароля и подтверждения:
Enter password:
Verify password:
Enter password: Verify password: |
Напомню, что при вводе пароля отображения символов не будет.
Установка степени сжатия для zip архива. Для утилиты zip можно указать насколько сильно необходимо сжать архив. Можно указать значение от 0 до 9. Здесь 0 это отсутствие сжатия, 9 — максимально. По умолчанию то есть без указания дополнительных параметров, выставлено значение 6. Пример. Для архивации папки «folder» без сжатия команда будет такой:
zip -0 -r folder.zip folder
zip -0 -r folder.zip folder |
Учитывайте, что чем выше укажете уровень сжатия тем выше нагрузка на систему и больше времени потребуется на операцию.
Распаковка zip-архива в Linux
Что бы распаковать архив zip используйте команду unzip. Например, что бы распаковать архив с именем «archive.zip» дайте команду:
Файлы будут распакованы в текущую директорию. Если требуется распаковать в другую папку то нужно использовать параметр -d . Например. Нужно распаковать архив «archive.zip» в папку с названием «1» находящуюся в папке «Документы». Для этого даем команду:
unzip -d ~/Документы/1 archive.zip
unzip -d ~/Документы/1 archive.zip |
Для распаковки зашифрованных архивов на которые был установлен пароль будет выдан запрос на ввод пароля а затем нужно подтвердить указав английскую букву «y».
Создание и распаковка архива tar.xz в Linux
Некоторые программы распространяются в этом формате. Как устанавливать программы в линукс читайте в этой статье.
Ещё один популярный формат архива в линукс .xz. Используется алгоритм сжатия LZMA2, такой же как и в 7z имеющий очень высокую степень сжатия. Расплачиваться за это придется нагрузкой на процессор и большее использование памяти по сравнению .gzip и .bzip2.
В этом разделе я расскажу как создавать и как распаковать tar.xz файл в Linux. Для работы потребуется поддержка утилиты сжатия XZ. Если её нет то установите командой:
sudo apt install xz-utils
sudo apt install xz-utils |
Синтаксис для создания архива tar.xz такой:
tar cfJ имя_архива.tar.xz имя_файла
tar cfJ имя_архива.tar.xz имя_файла |
- c — создать архив
- f — имя файла
- J — указывает на создание архива xz
- v или —verbose — можно указать для отображения добавленных в архив файлов
Если передаете аргументы tar с дефисами (например, tar -cf в отличие от tar cf), тогда опция -f должна быть последней , поскольку она указывает имя файла.
Для примера создадим архив папки Test. Для этого дадим команду:
Создан архив Test.tar.xz. Для распаковки архива синтаксис такой:
tar xf имя_файла.tar.xz
tar xf имя_файла.tar.xz |
Распаковка архива tar.xz
Для примера распакуем созданный ранее архив папки Test. Для этого нужно дать команду:
- x — извлечь файлы
- f — имя файла архива
На этом с архивами формата xz разобрались.
Распаковка RAR в Linux
Для распаковки «RAR» архивов в Linux используется утилиты unrar-free свободное программное обеспечение и unrar . По умолчанию онb не устанавливаются. Для инсталляции используйте команду:
sudo apt install unrar-free
sudo apt install unrar-free |
Либо установите несвободную утилиту командой:
Программа unrar-free не всегда может распаковать некоторые архивы RAR 3.0. Для распаковки таких архивов потребуется unrar. Но, чтобы установить несвободные программы у вас должен быть подключен репозиторий non-free. В этой статье я рассказал как подключать репозитории.
Рассмотрим как работать с утилитой unrar-free.
Для просмотра файлов в архиве используется ключ -t. Например:
Для извлечения файлов из архива rar используйте команду unrar с ключом -x . Например, что бы распаковать архив «archive.rar» используйте команду:
Рассмотри работу с утилитой unrar:
Основные опции:
- e — извлечь файлы в текущий каталог;
- l — cписок содержимого архива;
- p — вывести файл на стандартный вывод;
- t — протестировать архив;
- v — вывести информация об архиве;
- x — извлечь файлы с полным путем
Пример. Извлечем каталог archive.rar, для этого выполним команду:
файлы будут распакованы в ту папку в которой находитесь.
Более полную информацию по работе программ всегда можно получить указав в терминале:
имя программы —help — Краткая справка
man имя программы — Подробная справка
имя программы —help — Краткая справка man имя программы — Подробная справка |
На этом все. Думаю с архивированием в линукс разобрались.
Видео: Как создать архив в linux:
TAR – архивирование данных в Windows 10
Начиная с Windows 10 build 17063 утилита командной строки tar.exe является штатным средством архивирования данных. Утилита tar многие годы являлась основным средством архивирования в ОС семейства Linux и первоначально использовалась для создания архивов на магнитной ленте ( отсюда ее название tar — tape archive ). В настоящее время позволяет создавать архивы на любых носителях и практически, является основным средством хранения файлов и каталогов в одном файле специального формата для ОС семейства Linux/BSD. Главным достоинством формата tar является то, что архив содержит не только сами данные архивируемых файлов, но и информацию о структуре каталогов, владельце, и отметки времени ( время создания, модификации, доступа ). Архиватор tar не выполняет сжатие архивируемых данных, он всего лишь упаковывает множество файлов в один файл, размер которого приблизительно равен суммарному размеру упакованных файлов ( немного больше за счет добавления собственных служебных заголовков ). В Linux для сжатия используются внешние программы (gzip/bzip2/xz/lzma ), в Windows – дополнительные параметры командной строки. Используемая в Windows 10 утилита tar.exe базируется на bsdtar
Общий формат командной строки:
tar -f
Как это принято в *nix системах, строчные и заглавные буквы в параметрах командной строки различаются. Сначала необходимо задать параметры архивирования:
-c — создать архив.
-r — добавить/заменить файлы в существующем архиве.
-t — отобразить список файлов в архиве.
-u — обновить содержимое архива. В существующем архиве будут заменены только устаревшие файлы.
-x — извлечь файлы из архива.
Общие параметры:
-b # — использовать #-байтные записи для блоков ввода/вывода. # может принимать значения от 1 до 8192. По умолчанию используются записи длиной 512 байт.
-f — путь и имя файла архива. По умолчанию – магнитная лента (\\.\tape0)
-v — подробный режим вывода информации на экран.
-w — интерактивный режим, когда утилита выдает запрос на добавление файлов к архиву.
Создание архивов.
Формат командной строки:
tar -c [параметры] [ | | @ | -C
-z, -j, -J, —lzma — параметры сжатия архива — gzip/bzip2/xz/lzma
—format {ustar|pax|cpio|shar} — формат архива.
—exclude — исключить из архивирования файлы соответствующие шаблону pattern
, — файлы и каталоги, добавляемые в архив.
@ — добавить в архив записи из уже существующего архива archive
-C — сделать текущим каталогом каталог dir.
tar -c -f D:\Stordiag.tar D:\StorDiag\*.* — создать архив D:\Stordiag.tar из всех файлов каталога D:\StorDiag\
tar -cvf D:\Stordiag.tar D:\StorDiag\*.* — то же, что и в предыдущем примере, но параметры объединены ( -c –v –f можно использовать как –cvf) и добавлен подробный режим вывода ( -v ).
tar -cvzf D:\123.tar.gz D:\StorDiag\*.* @D:\StorDiag.zip — то же, что и в предыдущем примере, но выполняется сжатие архива методом gzip и к файлам создаваемого архива добавляется содержимое уже существующего архива D:\StorDiag.zip
tar -cvzf D:\123.tar.gz D:\StorDiag\*.reg @D:\StorDiag.zip — то же, что и в предыдущем примере, но для архивирования отбираются файлы с расширением .reg. Действие шаблона поиска файлов не распространяется на содержимое архива @D:\StorDiag.zip
Отображение содержимого архива
Формат командной строки:
tar -t [параметры] []
шаблон — шаблон для выводимого списка файлов. Если не задан – выводится список всего содержимого архива.
tar -tf D:\StorDiag.tar.gz — отобразить содержимое архива D:\StorDiag.tar.gz
Извлечение файлов из архива.
tar -x [параметры] []
шаблон определяет перечень извлекаемых из архива файлов. Если не задан, то извлекаются все.
-k — не перезаписывать существующие файлы.
-m — не восстанавливать отметку времени модификации файлов.
-O — записывать содержимое в stdout (выводить на экран), т.е. не восстанавливать на диск.
-p — восстанавливать разрешения, включая списки доступа (ACLs), владельца (owner), атрибуты файлов.
tar -xvzf D:\StorDiag.tar.gz — извлечь содержимое архива StorDiag.tar.gz в текущий каталог.
tar -xvzf D:\StorDiag.tar.gz *.reg — извлечь только файлы с расширением .reg
tar -xvzOf D:\123.tar.gz *.reg — то же, что и в предыдущем примере, но с выдачей информации на экран.
Обратите внимание, что извлечение файлов из архива всегда выполняется в текущий каталог. Поэтому для извлечения файлов в нужный каталог, не являющийся текущим можно воспользоваться параметром -C меняющий текущий каталог на dir перед извлечением файлов из архива.
Краткую справку по использованию TAR можно получить по команде:
tar /?
Usage:
List: tar -tf
Extract: tar -xf
Create: tar -cf [filenames…]
Help: tar —help
И соответственно, более полную справку можно получить по команде tar –help или tar –h.
Весь список команд CMD Windows
Архиватор tar и zip в Linux — команды распаковать и запаковать с ключами и опциями
Нет ничего лучше для запоминания информации, чем чтение, а потом написание этой информации в тетрадь, вот и я люблю прочитать и записать информацию в свою тетрадь nibbl.ru
Сегодня речь пойдет о такой вещи как архивация, а именно упаковка и распаковка таких форматов как: tar, gzip, zip и rar в в операционных системах Unix и Linux
нашу статью разобьем на разделы, что бы была удобная навигация.
Архивация в Linux
Linux или Линукс сейчас самая популярная система не только для системный администраторов, но уже и для большинства рядовых граждан, а причина банальна — уход от Микрософта на государственном уровне и повсеместное внедрение «свободного ПО российской разработки», но как бы не называли ее мы все понимаем, что единственное свободное ПО которое может заменить для рядового пользователя операционную систему для работы в офисе это семейство Линуксовых. Поэтому как говорится уже можно начинать ее изучать всем повсеместно)))) но давайте не уходить от темы, а вернемся к нашим баранам!
Хоть Linux и имеет графическую оболочку и даже уже можно скачать графические пакеты для работы с самыми популярными расширениями архиваторов, мы будем рассматривать работу с архивами на уровне консоли (но если кому надо сделаем обзор пакетов для работы не через консоль)
Архивация Tar в Linux
Tar — или как мы его называли архиватором таковым не является, причина тому, логика работы данного инструмента! это всего лишь упаковщик, а если быть точнее то задача tar создать контейнер в формате tar в который она помещает выбранные вами файлы (без сжатия). Но если Вам нужно эти данные ужать или сжать для уменьшения размера архива, тогда применяются дополнительные инструменты такие как Gzip или bzip2 (вы должны были обращать внимания, что скачивая пакеты или файлы они имели странный формат name-file.tar.gz ) Все дело в том, что принцип работы инструмента по сжатию данных, работает только в однопотоковом режиме, поэтому, что бы заархивировать много файлов и их сжать нам необходимо было их упаковать в TAR (один файл), а только потом прогнать через сжатие Gzip или bzip2 поэтому эти инструменты работают как Бонни и Клайд)
Создание архива TAR
Для начала начнем с запаковки архива Tar в Linux/ubuntu, и для этого надо запомнить шаблон или синтаксис команды:
tar [опции] <имя файла.tar> [файлы или папки которые будем упаковывать]
Опции для создания архива tar:
- c (create) — создать архив
- f (file) — указать имя архива
- j (bzip2) — cжать/распаковать архив дополнительно при помощи bzip2
- z (gzip) — сжать/распаковать архив дополнительно при помощи gzip
- v (verbose) — выводит список прогресса
Для создания архива tar нам необходимы только две опции c и f, но если вы хотите видеть процесс упаковки файлов, то можете добавить ключ v и тогда вы увидите на экране бегущий список файлов (так сказать «аналог» виндовому прогрессу в виде процентов)
tar -cvf newfile.tar /foto
в данной команде мы указали создать архив newfile.tar и запаковать всю папку foto
В списке опций вы заметили два ключа j и z эти ключи используются как для сжатия в архив gzip или bzip2 если вам нужно сделать архивацию с сжатием то применяем следующую команду:
tar -cvjf newfile.tar /foto — создаст архив + сжатие newfile.tar.bz2
tar -cvzf newfile.tar /foto — создаст архив + сжатие newfile.tar.gz
Распаковать архив TAR
рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив в linux/ubunta :
tar [опции] <имя файла.tar> [файлы или папки которые будем распаковывать]
Опции для создания архива tar:
- x (extract) — извлечь файлы из архива
- f (file) — указать имя архива
- j (bzip2) — cжать/распаковать архив дополнительно при помощи bzip2
- z (gzip) — сжать/распаковать архив дополнительно при помощи gzip
- v (verbose) — выводит список прогресса
- С (в верхнем регистре) — указываем альтернативное место для разархивирования файлов
tar -xvjf newfile.tar.bz2 — распаковываем архив в категорию в которой находимся
tar -xvzf newfile.tar.gz -C /home/nibbl/desktop — распаковываем архив на рабочий стол
Общая информация по работе с Tar
- tar —help — вызов справки по командам и параметрам
- man tar — вызов расширенной документации
- официальная документация по команде tar — ссылка
Архивация Zip в Linux
Архиватор zip — это звезда в мире ПО (ну не считая rar) этот формат очень популярен для windows систем и он по умолчанию уже встроен в чистую сборку операционной системы, поэтому только установив виндовус вы уже можете разархивировать файлы в формате zip
но давайте перейдем к делу, в Linux и Unix системах дела обстоят по другому, это формат Tar идет по умолчанию, а вот для zip надо поставить пакет unzip
Установка:
- sudo apt-get update && apt-get upgrade
- sudo apt-get install unzip
Создание ZIP архива
Для начала запомним шаблон или синтаксис команды для создания архива zip в linux:
zip [опции] <имя файла.zip> [файлы или папки которые будем упаковывать]
Опции для создания архива tar:
- r (recurse) — рекурсивное создание архива
- s (size) — разбивка архива на определенный размер k (kB), m (MB), g (GB) или t (TB)
пример: zip -s 300m <файл 1 ГБ>
на выходе получим:
file.zip (300 mb, master file)
file.001.zip (300 mb)
file.002.zip (300 mb)
file.003.zip (100 mb) - P (password) — запаролировать архив (можно использовать ключ e тогда пароль будете вводить в отдельной строке со звездочками )
пример: zip -P мойпароль -r file.zip ./home/nibbl/foto
пример2: zip -er file.zip ./home/nibbl/foto - x — исключаем файлы или каталоги из архива
- 1-9 — степень сжатия (где 1 без сжатия, а 9 лучшее сжатие)
zip –r -9 -P 123 — archive.zip /home/nibbl/desktop/myfile
— данной командой мы заархивировали с сжатием папку myfile создали архив с именем archive.zip и установили пароль на архив 123
Распаковать zip архив
рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив :
unzip <имя файла.zip>
Опции для создания архива tar:
- d (directory) — указать директорию для разархивации
- l — вывести список файлов в архиве
- d — удалить определенный файл или каталог из уже сделанного архива
- v — показывает детальную информацию по файлам в архиве ()
unzip <имя файла.zip> — распаковываем архив в категорию в которой находимся
unzip <имя файла.zip> -d /home/nibbl/desktop — распаковываем архив на рабочий стол
Общая информация по работе с Zip
- zip —help или unzip —help — вызов справки по командам и параметрам
- man zip или man unzip — вызов расширенной документации
- официальная документация по команде zip — ссылка
Архивируем файлы и папки в терминале Linux
Все мы пользуемся архивами, например zip, tar и так далее, но, есть понятие архивация и сжатие. Это совершенно два разных действия, архивацией называют например создание архивной копии вашей системы. А сжатие обозначает уменьшение размера файла или целой папки. Архивировать можно не только вашу операционную систему, но так же и базы данных, конфигурационные файлы и многое другое. При этом, важно что бы изначальный размер архивируемого объекта так же сжимался, это например будет полезно для экономии места на жестком диске. Думаю с этим все понятно, теперь вы знаете что существует архивация и сжатие файлов. Часто архивация и сжатие файлов производится одновременно. Теперь давайте перейдем к практике, все действия будут совершаться в терминале, так как это универсальный метод позволяющий обойтись без установки дополнительного П.О.
Архивируем папки и файлы командой tar
Для архивирования используется команда tar, давайте немного разберемся с опциями этой команды:
- tar c – создания архива
- tar r – добавления в архив файлов или папок
- tar t – просмотр содержимого архива без его распаковки
- tar x – распаковка архива
- tar v расширенный режим, в котором отображается вся информация о процессе
Это лишь малая часть всех опций, которые доступны при выполнении команды tar, полный список можно вызвать командой:
tar --help
Сжатие архива gzip bzip2
Для сжатия архива используется одна из команд, первая это классическая “gzip”, а вторая bzip2. Команда bzip2 лучше сжимает архивы, но, требуется больше времени для сжатия архива. Существенную разницу вы увидите между данными командами лишь при сжатии объемных файлов, а при сжатии файлов малого размера, разница практически не заметна. Для вызова справки по данным командами необходимо выполнить команды:
gzip --help bzip2 --help
Архивируем папки и файлы на практике
Теперь давайте перейдем к практике, предположим нам необходимо создать архив папки “test”, для этого необходимо выполнить команду tar с опцией “c”, как вы уже знаете, это опция создает архивы. Далее, дополним данную команду опцией “v”, что бы мы могли видеть процесс создания архива, и последняя опция “f”, это имя создаваемого файла. И так, вводим команду: “tar cvf archive.tar”, в данном примере слово “archive” означает название создаваемого вами архива, оно может быть любым. После чего указываем папки и файлы, которые нам необходимо заархивировать, в данном примере это будет папка “test”:
tar cvf archive.tar test
Таким образом вы можете архивировать сразу несколько директорий и файлов в один архив, для этого необходимо после выполнения команды “tar cvf archive.tar” просто перечислять их имена. Теперь давайте добавим в уже созданный чуть ранее архив файл “test_file”. Для этого служит опция “r”, то есть, теперь вместо опции “c” указываем “r”, остальные опции можно оставить без изменений:
tar rvf archive.tar test_file
После чего воспользуемся опцией “t” для просмотра содержимого архива. В директории “test” так же лежит файл, который называется точно так же, как и директория – “test”. Это отчетливо видно на скриншоте (test/test), и последняя строчка (test_file), это файл, который мы добавляли в уже созданный архив:
tar tvf archive.tar
Распаковка архива
Мы научились создавать архивы, но, их так же необходимо и распаковывать, для этого служит опция “x”. Предположим, нам необходимо распаковать только один файл “test_file”. Для этого необходимо ввести команду “tar” далее указать необходимые опции “xvf”, далее указываем название архива, а после чего название файла, в нашем же случае это “test_file”. для наглядности я перенес данный архив в папку “dir_archive”, так что не удивляйтесь:
tar xvf archive.tar test_file
Для распаковки всего архива выполняем команду “tar”, далее уже знакомые опции “xvf” и название архива, в нашем же случае это “archive.tar”:
tar xvf archive.tar
Если же вам необходимо распаковать архив в какую либо иную директорию, то для этого служит опция “-C”, далее указываем путь к нужной нам директории. Например, возьмем директорию “Документы”, вводим команду для распаковки архива “tar xvf archive.tar” далее указываем опцию “-C” и указываем путь к директории “Документы”:
tar xvf archive.tar -C ~/Документы
Архивация и сжатие файлов и папок
Теперь переходим к сжатию архива, и начнем пожалуй с “gzip”. Для того что бы сжать архив, необходимо ввести команду “tar”, далее указать опции “zcvf”, если присмотритесь, то увидите, что к уже знакомым нам опциям просто добавляем “z”. После чего указываем имя архива, например “gzip_arch“, указываем расширения “tar.gz” и последним шагом указываем файлы и папки которые мы хотим заархивировать. Например, возьмем папку “test” и файл “test_file” и создадим сжатый архив под названием “gzip_arch”. Вводим команду:
tar zcvf gzip_arch.tar.gz test test_file
Для сжатия в “bzip2” необходимо выполнить команду “tar”, затем указываем опции “jcvf”, обратите внимания, что в данном случае первой буквой идет “j”, далее указываем имя создаваемого архива и после чего указываем расширения. Для создания “bzip2” архива необходимо указать расширения “tar.bz2”. Теперь давайте создадим архив с тем же названием (gzip_arch) но при помощи bzip2:
tar jcvf gzip_arch.tar.bz2 test test_file
Для того что бы посмотреть содержимое архива “tar.gz” необходимо ввести команду “tar” далее указать опцию “ztvf” и название архива. Собственно, разница составляет лишь в одной букве – “z”, а для просмотра архива “tar.bz2” необходимо ввести все ту же команду “tar” с опцией “jtvf” и название архива. Как и в прошлый раз, разница все го в одной букве – “j”.
Распаковка архивов
Переходим к распаковке созданных чуть ранее архивов, я их переместил в директорию “dir_archive”. Для распаковки архивов “tar.gz” используются опция “z”, а опция “x” означает распаковать данный архив. Далее указываем опции “vf” и название архива, в данном случае это “gzip_arch.tar.gz”: То есть, полная команда будет выглядеть так “tar zxvf gzip_arch.tar.gz”, так же, можно распаковать только определенный файл или папку, для этого просто указываете название папки или файла. Например, распакуем все тот же файл “test_file”:
tar zxvf gzip_arch.tar.gz test_file
Для распаковки архивов “tar.bz2” используются все те же опции но лишь заменив первую букву на “j”, далее все точно так же, указываете название архива, а в нашем случае это “gzip_arch.tar.bz2” и при необходимости файл. Если же вы хотите распаковать весь архив, то достаточно указать в обеих случаях только название самого архива. То есть, давайте распакуем архив “gzip_arch.tar.bz2”, по аналогии точно так же, только изменив опции распаковывается и “gzip_arch.tar.gz” весь целиком:
tar jxvf gzip_arch.tar.bz2
В том случае если вы хотите распаковать архив в другую директорию, то используйте уже знакомую вам опцию “-C”, как мы это делали ранее с архивами. Например, я хочу распаковать архив “gzip_arch.tar.bz2” в директорию “Загрузки”, ввожу команду для распаковки архива, затем указываю опцию “-C”, а затем путь до директории “Загрузки”:
Заключение
На первый взгляд вам может показаться что это все муторно и не понятно, да и зачем в наше время использовать терминал для подобных манипуляций? Но, на самом деле, работая в терминале вы можете сэкономить множество времени, так как создавая архив в терминале, вы можете в него упаковать только те файлы, которые вам необходимо. При этом, достаточно написать их названия, а используя графические версии архиваторов на это у вас может уйти немного больше времени. Да и как уже ранее говорилось, сила Linux в его терминале, и знания терминала порой очень вам может пригодится, так что не стоит его боятся.
А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X
Резервное копирование в Linux – команда tar
Утилита tar в Linux предназначена для объединения (упаковки) нескольких файлов в один, т. е. для создания архивов. Она обладает хорошим функционалом для работы с архивами, умеет эффективно перемещать файлы (архивы или tar-файлы) с одного устройства на другое (включая ленточные устройства), сохраняя при этом атрибуты файлов и структуру файловой системы. Всё это позволяет использовать утилиту в качестве полноценного инструмента для организации резервного копирования. Конечно, для этих целей существуют и другие, специализированные утилиты. Как например dump, однако системным администраторам полезно уметь обращаться также и с tar.
Особенности использования утилиты tar
Как уже отмечалось, утилита объединяет несколько каталогов и файлов в один tar-файл, который потом можно сжать при помощи, например gzip, compress или bzip2. Это очень удобно, когда необходимо и данные зарезервировать и дополнительное место освободить на диске. Утилита часто применяется, когда нужно создать кратковременные резервные копии данных.
Среди версий tar, которые не относятся к GNU, подавляющее большинство таких, которые не поддерживают длину имён файлов больше, чем 100 символов, а также не умеют работать с несколькими лентами, поэтому перед использованием конкретной имеющейся в распоряжении версии утилиты необходимо внимательно ознакомиться с официальной технической документацией (команда man tar) для выяснения подобных деталей. Также, не все версии tar по-умолчанию обрабатывают символьные ссылки — от версии к версии для этого используются различные ключи, о чём можно также узнать из документации. Утилита очень хорошо подходит для быстрого копирования дерева каталогов.
Синтаксис и опции команды tar
У утилиты tar следующий синтаксис:
tar [опции] название_архива файлы_для_архива
Например, с помощью команды:
$ tar -cf etc.tar /etc
можно сделать копию каталога /etc в архив etc.tar. Приведённый пример демонстрирует распространённый случай резервного копирования с помощью команды tar. Здесь опция -c означает создание (create) архива, -f – вывод результатов в файл. Во второй части команды, которая принимает на свой вход выходной поток от tar -cf опция -x (extract) указывает tar, что нужно извлекать содержимое архива, -p – сохранять информацию о режимах доступа к файлам. Есть ещё опция -b, позволяющая задавать коэффициент объединения блоков, который полезен при записи на ленточные устройства. Это в некоторых случаях позволяет добиться большей производительности. Оптимальным считается значение 20, однако, поэкспериментировав, можно найти и лучший вариант для конкретных условий. Опция -v позволяет выводить подробную информацию о ходе работы команды.
Синтаксис для распаковки:
tar [опции] архив
Например команда
$ tar xfv archive.tar
Распакует archive.tar в текущую директорию, что бы задать директорию куда нужно распаковать архив используйте ключ -с. Например
$ tar xfv archive.tar -с /var
Ниже представлен основной список ключей команды tar
-A, —catenate, —concatenate присоединение tar-файловк архиву
-c, —create создание нового архива
-d, —diff, —compare поиск различий между архивом и файловой системой
—delete удаление из архива (не на магнитных лентах!)
-r, —append добавление файлов в конец архива
-t, —list вывод списка содержимого архива
—test-label проверка метки тома архива и выход
-u, —update добавление в архив только более новых файлов
-x, —extract, —get извлечение файлов из архива
Обратите внимание, что при запуске команды, перед ключами не обязательно ставить знак дефиса
tar примеры
Как уже упоминалось, для создания сжатых архивов сначала создаётся сам архив командой tar, а затем этот архив сжимается с помощью gzip. Но можно всё это сделать и одной командой tar:
$ tar -cvzf archive.tgz *
В результате будет создан сжатый архив gzip archive.tgz, сжатие которого будет выполнено с помощью gzip и благодаря опции z. Символ «*» указывает, что в архив попадёт всё, что находится в текущем каталоге. Здесь же будет создан и целевой архив archive.tgz. Вместо опции z можно указывать и другие — Z, J, j, которые задают соответствующие алгоритмы сжатия — LZV, xz и bzip2.
На всякий случай, перед созданием резервных копий лучше перейти в корневой каталог «/» — утилита убирает начальный символ «/» из имён/путей файлов, из-за чего в последствии информация из архивов может быть восстановлена не совсем правильно.
В случае с резервным копированием (на ленточный носитель) можно использовать следующие команды:
$ cd / $ tar -cpf /dev/st0 --label="Backup at `date '+%d-%B-%Y'`." -C /home
Как видно, здесь в качестве имени архива используется /dev/st0 – ленточное устройство. Поэтому для идентификации архивов полезно воспользоваться опцией —label, задающей описание конкретного архива. В обратных кавычках подставляется маска для даты/времени создания архива. Опцией -C (или —directory) задаётся директория, подлежащая резервированию. Для выполнения добавочного архивирования, т. е. когда необходимо зарезервировать только изменившиеся с момента предыдущей архивации файлов, следует воспользоваться опцией -N:
$ cd / $ tar -cpNf /dev/st0 --label="Backup at `date '+%d-%B-%Y'`." -C /home
После создания резервной копии не лишним будет проверить с помощью опции -d, что архив цел:
$ cd / $ tar -dvf /dev/st0
Для резервирования всей системы можно использовать такую команду:
$ cd / $ tar -cpf /sysarchive/system-at-`date '+%d-%B-%Y'`.tar -C / --exclude=proc --exclude=mnt --exclude=archive --exclude=cache --exclude=*/lost+found .
Здесь с помощью опций —exclude указывается, какие каталоги необходимо исключить из процедуры архивирования, а символ точки «.» в конце команды говорит о том, что нужно обрабатывать все каталоги и файлы, находящиеся в директории, указанной опцией -C. Следует заметить, что в данном примере, в отличие от предыдущих, в качестве целевого архива задан непосредственно tar-файл, а не ленточное устройство.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Шпаргалка по основным командам архиватора tar
Вообще-то tar — это старая программа, разработанная в те времена, когда файлы и архивы хранились магнитных лентах. Сама аббревиатура tar расшифровывается как Tape ARchiver. Из-за своего прямого предназначения он не сжимает данные, а лишь объединяет их в единый файл с последовательным доступом для записи на ленту и по умолчанию этот архивный файл создается на ленточном накопителе, точнее на устройстве /dev/rmt0.
Однако tar совместно с программой сжатия gzip, а в последнее время — bzip2, является основным архиватором *nix систем. tar собирает указанные файлы в единый архив, а gzip или более новый и более эффективный компрессор bzip2 (и требующий больших мощностей от компьютера) сжимают этот архив. Сами по себе gzip и bzip для создания архивов достаточно бесполезны — они не умеют собирать файлы, а только сжимают один файл и пишут на его место его архив (т.е. файл-источник аккуратно удаляют), а в паре с tar это очень мощное средство.
Первым аргументом к программе tar всегда должна быть одна из следующих опций: Acdrtux, за которой следуют необязательные дополнительные параметры. Эти опции определяют основные функции программы:
- -A, —catenate, —concatenate
добавляет файлы в архив - -c, —create
создает новый архив - -d, —diff, —compare
находит различия между объектами архива и их «исходниками» в файловой системе - —delete
удаляет файлы из архива (эта опция не используется для архивов на магнитной ленте!) - -r, —append
добавляет файлы в конец архива - -t, —list
выводит содержание архива - -u, —update
добавляет только те файлы, которые ранее не были включены в архив - -x, —extract, —get
извлекает файлы из архива
Так как с лентами сейчас практически никто не работает, то к этим обязательным параметрам следует добавить еще один — f. Без него tar будет использовать вместо архива устройство /dev/rmt0.
Последними аргументами к программе tar являются имена архивируемых файлов или каталогов. При использовании имени каталога всегда предполагается, что его подкаталоги будут также включены в архив.
Создание tar архива
Создание архива и сжатие его gzip. Используется параметр -z:
$ tar -czf <имя_архива> <имя_файла|каталога> ... <имя_файла|каталога>
Суффикс .gz не добавляется автоматически к имени создаваемого архива, поэтому лучше сразу задать имя архива с указанием обеих суффиксов: имя.tar.gz.
Создание архива и сжатие его bzip2. Используется параметр -j:
$ tar -cjf <имя_архива> <имя_файла|каталога> ... <имя_файла|каталога>
Лучше сразу задать имя архива с указанием обеих суффиксов: имя.tar.bz2.
При создании архива можно использовать параметр -v — включает вывод списка упакованных в процессе работы файлов.
Распаковка tar архива
Распаковка tar архива задается с помощью ключа -x:
tar -xvf /path/to/archive.tar.bz2
распакует содержимое архива, сжатого bzip2 в текущую папку. Альтернативное место для распаковки можно указать с помощью ключа -C:
$ tar -xvf archive.tar.bz2 -C /path/to/folder
распакует содержимое архива, сжатого gzip в папку /path/to/folder.
Просмотр содержимого архива
Для просмотра содержимого архива используйте следующую команду:
$ tar -tf archive.tar.gz
Она выведет простой список файлов и каталогов в архиве, но если добавить ключ -v, будет выведен подробный список с указанием размера, прав доступа и прочих параметров.
tar обладает очень большими возможностями и кучей параметров, посмотреть которые можно по
$ man tar
или
$ tar --help
Создание файлов tar.gz и zip
Многие материалы состоят из нескольких файлов и их гораздо удобнее
загрузить, если они упакованы в один файл. Две хорошие утилиты для этого
tar и zip.
Обратите внимание, что arXiv в настоящее время не поддерживает архивы rar
, bz
или
bz2
сжатие. Кроме того, вы не должны просто объединять файлы вместе.
поскольку у arXiv не будет возможности их разумно распаковать.
tar
файлов
Утилита tar
(для Tape ARchive) — хороший способ упаковать
несколько файлов в один пакет. tar
доступен для всех
платформ и устанавливается по умолчанию в большинстве систем Linux / Unix и на
Mac с OSX. См. Наше обсуждение доступности и
установка.
tar
файлы имеют расширение .tar
В командной строке Unix вы создаете tar-архив следующим образом. Предположим
у вас есть несколько файлов, foo.tex
, fig1.eps
, fig2.eps
. Затем
следующее создает файл tar с именем mystuff.tar
, включая эти файлы:
$ tar -cvf mystuff.tar foo.tex fig1.eps fig2.eps
Предупреждение: Если вы забудете ввести имя файла mystuff.tar
, tar будет
перезаписать первое имя файла, которое он видит (в этом случае foo.tex
следующее
в очереди). Разве Unix — это не весело?
Затем вы захотите использовать gzip для сжатия tar-файла для
самая быстрая загрузка:
, который создаст файл с именем mystuff.tar.gz
.
В качестве альтернативы, большинство версий tar позволяют создавать архивные файлы tar.
в одном действии.Используя приведенный выше пример, чтобы создать архивный tar-файл
позвоните по номеру mystuff.tar.gz
, выполните следующие действия:
$ tar -cvzf mystuff.tar.gz foo.tex fig1.eps fig2.eps
zip
файлов
Различные утилиты могут создавать файлов zip и
файлов. К ним относятся WinZip на
Системы Windows и Zip, StuffIt (коммерческая версия) в системах Mac.
zip
файлов позволяют как упаковать несколько файлов, так и сжать
результат и так по существу эквивалентен .tar.gz
файлов.
Распаковка файла .tar.gz
См. Нашу справочную страницу по распаковке для получения информации о распаковке.
.tar.gz
файлов.
«Создание файлов tar.gz и zip», версия 0.6.1. Последнее изменение 2019-01-04.
.
tarfile — чтение и запись файлов архива tar — документация Python 3.8.6
Возвращает объект TarFile
для пути name . Для подробного
информация об объектах TarFile
и аргументах ключевых слов, которые
разрешено, см. Объекты TarFile.
mode должен быть строкой вида 'filemode [: сжатие]'
, по умолчанию
к 'r'
. Вот полный список комбинаций режимов:
режим | действие |
---|---|
| Открыто для чтения с прозрачным |
| Открыто для чтения исключительно без |
| Открыто для чтения со сжатием gzip. |
| Открыто для чтения со сжатием bzip2. |
| Открыт для чтения со сжатием lzma. |
| Создавать tarfile исключительно без |
| Создайте tar-файл со сжатием gzip. |
| Создайте tar-файл со сжатием bzip2.Вызвать исключение |
| Создайте tar-файл со сжатием lzma. |
| Открыто для добавления без сжатия. В |
| Открыто для записи без сжатия. |
| Открыто для записи в сжатом формате gzip. |
| Открыт для записи в сжатом формате bzip2. |
| Открыт для записи в сжатом формате lzma. |
Обратите внимание, что 'a: gz'
, 'a: bz2'
или 'a: xz'
невозможно.Если режим
не подходит для открытия определенного (сжатого) файла для чтения,
ReadError
возникает. Чтобы этого избежать, используйте режим 'r'
. Если
метод сжатия не поддерживается, возникает ошибка CompressionError
.
Если указан fileobj , он используется как альтернатива файловому объекту
открыт в двоичном режиме для имя . Предполагается, что он находится в позиции 0.
Для режимов 'w: gz'
, 'r: gz'
, 'w: bz2'
, 'r: bz2'
, 'x: gz'
,
'x: bz2'
, tarfile.open ()
принимает аргумент ключевого слова
compresslevel (по умолчанию 9
), чтобы указать уровень сжатия файла.
Для специальных целей существует второй формат для режима :
'файловый режим | [сжатие]'
. tarfile.open ()
вернет TarFile
объект, который обрабатывает свои данные как поток блоков. Никакой случайный поиск не будет
делать по файлу. Если задано, fileobj может быть любым объектом, имеющим
read ()
или write ()
метод (в зависимости от режима ). размер
указывает размер блока и по умолчанию 20 * 512
байта. Используйте этот вариант
в сочетании, например, с sys.stdin
, объект файла сокета или лента
устройство. Однако такой объект TarFile
ограничен тем, что
не разрешать произвольный доступ, см. Примеры. В настоящее время
возможные режимы:
Режим | Действие |
---|---|
| Открыть поток блоков tar для чтения |
| Открыть поток несжатых блоков tar |
| Открыть сжатый gzip поток для |
| Откройте сжатый bzip2 поток для |
| Открыть сжатый lzma поток для |
| Открыть несжатый поток для записи. |
| Открыть сжатый gzip поток для |
| Откройте сжатый bzip2 поток для |
| Открыть сжатый lzma поток для |
Изменено в версии 3.5: добавлен режим 'x'
(эксклюзивное создание).
.