- TAR — архивирование данных в Windows 10.
- Создание архивов.
- Отображение содержимого архива
- Извлечение файлов из архива.
- Использование tar в Linux и FreeBSD для работы с архивами
- Создание и распаковка архивов
- Создать
- Распаковать
- Примеры
- Распаковать в определенную папку
- Распаковка без вложенной папки
- Исключение файлов по маске
- Работа с архивами, разбитыми на части
- Описание ключей tar
- Команды для действия
- Дополнительные опции
- Windows
- Как быстро извлечь файлы .tar.gz в Windows 10
- Извлечение архивов .tar.gz, .tgz, .gz с помощью tar в Windows 10
- Извлечение архивов .tar.gz, .tgz, .gz с использованием tar в Linux в Windows 10
TAR — архивирование данных в Windows 10.
Начиная с Windows 10 build 17063 утилита командной строки tar.exe является штатным средством архивирования данных. Утилита tar многие годы являлась основным средством архивирования в ОС семейства Linux и первоначально использовалась для создания архивов на магнитной ленте ( отсюда ее название tar — t ape ar chive ). В настоящее время позволяет создавать архивы на любых носителях и практически, является основным средством хранения файлов и каталогов в одном файле специального формата для ОС семейства Linux/BSD. Главным достоинством формата tar является то, что архив содержит не только сами данные архивируемых файлов, но и информацию о структуре каталогов, владельце, и отметки времени ( время создания, модификации, доступа ). Архиватор tar не выполняет сжатие архивируемых данных, он всего лишь упаковывает множество файлов в один файл, размер которого приблизительно равен суммарному размеру упакованных файлов ( немного больше за счет добавления собственных служебных заголовков ). В Linux для сжатия используются внешние программы (gzip/bzip2/xz/lzma ), в Windows – дополнительные параметры командной строки. Используемая в Windows 10 утилита tar.exe базируется на bsdtar
Общий формат командной строки:
Как это принято в *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
—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 –help или tar –h .
Использование tar в Linux и FreeBSD для работы с архивами
Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.
Создание и распаковка архивов
Создать
Создание выполняется с ключом c. Синтаксис следующий:
tar -czvf archive.tar.gz /home/dmosk
* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).
Распаковать
Распаковка выполняется с ключом x с синтаксисом:
tar -xvf archive.tar.gz
Примеры
Распаковка .gz файла:
tar -xvf archive.tar.gz
* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.
tar -xvjf archive.tar.bz2
* ключ j отвечает за работу с bz2.
Если система ругается на bzip2, значит нужно его установить:
yum install bzip2
apt-get install bzip2
pkg install bzip2
* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).
Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:
bzip2 -d archive.tar.bz2
tar -xvzf archive.tar.gzip
* ключ z отвечает за работу с gzip.
Распаковывается, как gzip:
tar -xvzf archive.tgz
Распаковать в определенную папку
tar -C /home/user -xvf archive.tar.gz
* ключ -C используется для указания папки, куда необходимо распаковать файлы из архива.
Распаковка без вложенной папки
Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:
tar -C /home/admin/mytar -xvf admin.tar.gz —strip-components 1
* каталог /home/admin/mytar заранее должен быть создан; —strip-components 1 пропустит одну вложенную папку внутри архива.
Исключение файлов по маске
Если необходимо пропустить некоторые файлы, вводим команду с ключом —exclude:
tar -czvf archive.tar.gz /wwwsite —exclude=’sess_*’
* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.
Работа с архивами, разбитыми на части
Разбить архив на части может понадобиться по разным причинам — нехватка места на носителе, необходимость отправки файлов по почте и так далее.
Чтобы создать архив, разбитый на части, вводим команду:
tar -zcvf — /root | split -b 100M — root_home.tar.gz
* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.
В итоге мы получим, примерно, такую картину:
root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzae
root_home.tar.gzag root_home.tar.gzai root_home.tar.gzab
root_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah
Чтобы собрать архив и восстановить его, вводим команду:
cat root_home.tar.gz* | tar -zxv
Описание ключей tar
Команды для действия
Ключ | Описание |
---|---|
-A | Добавление файлов в архив. |
-c | Создание нового архивного файла. |
-d | Показать отличающиеся данные между каталогом-исходником и содержимым архива. |
—delete | Удалить файлы внутри архива. |
-r | Добавить файлы в конец архива. |
-t | Показать содержимое архива. |
-u | Добавить файлы, которых нет в архиве. |
-x | Извлечь файлы из архива. |
* нельзя использовать несколько вышеперечисленных ключей в одной команде.
Дополнительные опции
Ключ | Описание |
---|---|
—atime-preserve | Оставить прежнюю метку времени доступа для файла. |
-b N | Задать размер блока N x 512. |
-C | Смена каталога. По умолчанию, используется тот, в котором мы находимся. |
—checkpoint | Показать имена папок при чтении архивного файла. |
-G | Использование старого формата инкрементального резервирования при отображении или извлечения. |
-g | Использование нового формата инкрементального резервирования при отображении или извлечения. |
-h | Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки. |
-i | Игнорировать блоки нулей. |
-j | Использование bzip2. |
—ignore-failed-read | Игнорировать не читаемые файлы. |
-k | При распаковке, существующие файлы не заменяются соответствующими файлами из архива. |
-L N | Смена магнитной ленты после N*1024 байт. |
-m | При извлечении игнорировать время модификации объекта. |
-M | Многотомные архивы. |
-N DATE | Сохранять только более новые файлы относительно DATE |
-O | Направление извлекаемого на стандартный вывод. |
-p | Извлечение защищенной информации. |
-P | Не отбрасывает начальный слэш (/) из имен. |
-s | Сортировка файлов при извлечении. |
—preserve | Аналогично -ps |
—remove-files | Удалить исходные файлы после добавления в архив. |
—same-owner | Сохранить владельца при извлечении. |
—totals | Вывод байт при создании архива. |
-v | Протоколирование действий — отображение списка объектов, над которыми происходит действие. |
-V NAME | Создание архива на томе с меткой NAME. |
—version | Показать версию tar. |
-w | Требовать подтверждения для каждого действия. |
-W | Проверка архива после записи. |
—exclude FILE | Исключить файл FILE. |
-X FILE | Исключить файлы FILE. |
-Z | Фильтрует архив с помощью compress. |
-z | Использование gzip. |
* актуальный список опций можно получить командой man tar.
Tar не работает с zip-архивами. В системах UNIX для этого используем утилиты zip и unzip. Для начала, ставим нужные пакеты:
yum install zip unzip
apt-get install zip unzip
pkg install zip unzip
* соответственно, для RPM based, deb based, BSD based.
zip -r archive.zip /home/dmosk
* создает архив каталога /home/dmosk в файл archive.zip.
Windows
В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.
Как быстро извлечь файлы .tar.gz в Windows 10
Файл в формате .tar.gz — это файл, созданный с помощью tar-архиватора на базе Unix, а затем сжатый с использованием сжатия gzip. Эти файлы часто называют «тарболами». Хотя вы можете найти их с двойным расширением (.tar.gz), расширение также можно сократить до .tgz или .gz.
Обычно файлы tar обычно используются пользователями Ubuntu (других дистрибутивов Linux) и macOS для архивирования и резервного копирования данных. Однако пользователи Windows 10 также могут столкнуться с этими файлами, что является причиной для извлечения их содержимого.
Хотя вы можете использовать сторонние приложения (такие как 7-Zip и PeaZip), эти приложения не всегда работают должным образом с архивами, созданными на другой платформе, и они медленно распаковывают большое количество файлов. Однако теперь Windows 10 включает встроенную поддержку файлов tar, и вы можете использовать командную строку для извлечения этих файлов. Или вы даже можете использовать подсистему Windows для Linux (WSL), которая включает встроенную поддержку Ubuntu , Fedora, SUSE и многих других дистрибутивов. Следовательно, вы также можете получить доступ ко многим инструментам Linux, включая tar, для быстрого извлечения содержимого из архивов tar.
В этом руководстве вы узнаете, как использовать собственные команды tar в Windows 10 с помощью командной строки и Ubuntu для извлечения содержимого файла .tar.gz.
Извлечение архивов .tar.gz, .tgz, .gz с помощью tar в Windows 10
Чтобы извлечь файлы .tar.gz, .tgz, .gz, а также .zip с помощью tar в Windows 10 , выполните следующие действия:
- Откройте Пуск в Windows 10.
- Найдите командную строку, щелкните правой кнопкой мыши верхний результат и выберите параметр «Запуск от имени администратора».
- Введите следующую команду, чтобы использовать tar для извлечения файлов, и нажмите Enter:
Совет: обязательно обновите синтаксис команды, включив в нее исходный и целевой пути. Кроме того, поскольку вы используете tar в Windows 10, вам не нужно указывать путь, как если бы вы работали в Linux. Вы можете использовать формат пути, используемый Windows.
После выполнения этих шагов через несколько секунд все файлы и папки будут извлечены по указанному вами пути назначения.
Предполагается, что вы распаковываете архив, созданный в другой системе. Мы пропускаем некоторые аргументы, которые обычно необходимы для сохранения разрешений, которые в Windows 10 не нужны для доступа к файлам.
Извлечение архивов .tar.gz, .tgz, .gz с использованием tar в Linux в Windows 10
В Windows 10, чтобы использовать tar в Linux, вам необходимо установить подсистему Windows для Linux (WSL) и такой дистрибутив, как Ubuntu, из Microsoft Store.
Чтобы извлечь файл .tar.gz с помощью Linux в Windows 10, выполните следующие действия:
- Откройте Пуск.
- Найдите Ubuntu и щелкните верхний результат, чтобы открыть приложение.
- Введите следующую команду, чтобы извлечь содержимое файла .tar.gz, и нажмите Enter:
В приведенной выше команде мы вводим команду sudo для запуска приложения от имени администратора, tar для вызова приложения, а затем передаем ему некоторые аргументы, в том числе:
- x — указывает tar, что вы хотите извлечь содержимое.
- v — многословный. Это необязательный аргумент для отображения процесса извлечения. В противном случае вы будете видеть только мигающий курсор, пока процесс не будет завершен.
- z — указывает tar распаковать содержимое файла .tar.gz с помощью gzip.
- f — указывает tar имя файла, который вы собираетесь извлечь.
Затем вам нужно указать путь к архиву, который вы хотите распаковать. Вы заметите, что путь начинается с /mnt/c/, а не с «c:\И» потому, что мы действительно работаем в мире Linux.
-C — (дефис и заглавная C) используется для указания tar менять папки. Когда вы выполняете команду, вы начинаете с исходной папки, а затем вам нужно указать папку назначения, которая является путем, который мы указали для завершения команды. Вы можете извлечь файлы в любую папку, но не забудьте начать путь с /mnt/path Windows.
Вы должны обращать внимание на прописные и строчные буквы при вводе команды Linux, поскольку рабочий стол — это не то же самое, что рабочий стол .
В этом руководстве мы рассмотрим основные шаги для выполнения конкретной задачи. Если вы не являетесь пользователем Linux, о tar можно узнать гораздо больше. Вы можете узнать больше об этом инструменте в консоли Ubuntu, набрав tar —help .