Как быстро извлечь файлы.tar.gz в Windows 10
Публикация: 26 Июль 2019 Обновлено: 26 Июль 2019
Если у вас есть файлы .tar.gz, .tgz или .gz, вы можете использовать шаги ниже, чтобы использовать инструмент командной строки tar для извлечения его содержимого в Windows 10.
Файл в формате.tar.gz — это файл, который был создан с использованием tar -архива приложения на основе Unix, а затем сжат с использованием сжатия gzip. Эти файлы часто вы можете найти с двойным расширением (.tar .gz), расширение также можно сократить до.tgz или.gz.
Обычно tar-файлы используются пользователями Ubuntu и macOS для архивирования данных и резервного копирования, но иногда пользователи Windows 10 также могут столкнуться с этими типами файлов и могут нуждаться в извлечении их содержимого.
Хотя вы можете использовать ряд сторонних приложений, таких как 7-Zip, иногда эти приложения плохо работают с файлами, созданными на другой платформе, и медленно распаковывают большое количество файлов. К счастью Windows 10 включает встроенную поддержку tar, вы можете использовать командную строку (CMD) для распаковки этих файлов. Кроме того, вы даже можете использовать подсистему Windows для Linux (WSL), которая обеспечивает встроенную поддержку Ubuntu, Fedora и SUSE, следовательно, вы также можете получить доступ ко многим инструментам Linux, включая tar, для быстрого извлечения содержимого из tar-архивов.
В этом руководстве вы узнаете, как использовать собственные команды tar в Windows 10 с помощью командной строки и Ubuntu для извлечения содержимого файла .tar.gz.
- Содержание
- Как извлечь tar-архивы .tar.gz, .tgz или .gz, используя tar в Windows 10
- Как извлечь tar-архивы .tar.gz, .tgz или .gz, используя tar в Linux на Windows 10
Как извлечь tar-архивы .tar.gz, .tgz или .gz, используя tar в Windows 10
Используйте эти шаги для извлечения .tar.gz, .tgz, .gz и .zip файлов с использованием tar в Windows 10 без необходимости установки подсистемы Windows для Linux:
Шаг 1: Откройте меню «Пуск». Начните набирать Командная строка, кликните правой кнопкой мыши первый результат в поиске и выберите параметр «Запуск от имени администратора».
Шаг 2: Введите следующую команду, чтобы использовать tar для распаковки файлов, и нажмите Enter :
*Встроенная поддержка tar в Windows 10
Совет: поскольку вы используете tar в Windows 10, вам не нужно указывать путь, как если бы вы работали в Linux. Вы можете просто использовать формат пути, используемый Windows.
После того, как вы выполните эти шаги, через несколько секунд все файлы и папки будут извлечены по указанному вами пути назначения.
Предполагается, что вы распаковываете архив, созданный в другой системе, поэтому пропускаем некоторые аргументы, обычно необходимые для сохранения разрешений, которые в Windows 10 не нужны для доступа к файлам.
Как извлечь tar-архивы .tar.gz, .tgz или .gz, используя tar в Linux на Windows 10
Чтобы использовать tar в Linux, вам нужно включить подсистему Windows для Linux (WSL), а затем установить Ubuntu из магазина Microsoft Store.
После того, как вы установили Ubuntu в Windows 10, выполните следующие шаги, чтобы извлечь файл .tar.gz :
Важное замечание: Начиная с версии 1803, инструмент управления командами tar входит в состав Windows 10, что означает, что для использования средства больше не требуется использование подсистемы Windows для Linux.
Шаг 1: Откройте меню «Пуск». Найдите Ubuntu и откройте приложение.
Шаг 2: Введите следующую команду, чтобы извлечь содержимое файла.tar.gz, и нажмите Enter :
*Команда tar в Windows 10
Замените «c/PATH/TO/TAR-FILE/Downloads/FILE-NAME.tar.gz» — на путь и имя вашего архива
Замените «c/PATH/TO/DESTINATION/FOLDER» — на путь куда будет распакован архив
В приведенной выше команде мы набираем sudo для запуска приложения от имени администратора, tar для вызова приложения, а затем передаем ему несколько аргументов, в том числе:
- x — указывает tar, что вы хотите извлечь содержимое.
- v — Это необязательный аргумент для отображения процесса извлечения. В противном случае вы увидите только мигающий курсор, пока процесс не будет завершен.
- z — указывает tar распаковать содержимое файла.tar.gz с помощью gzip.
- f — указывает tar имя файла, который вы собираетесь извлечь.
Затем вам нужно указать путь к архивному файлу, который вы хотите извлечь. Вы заметите, что путь начинается /mnt/c/, а не c:\ потому, что мы на самом деле работаем в Linux.
- -C — (дефис и заглавная C ) используется, чтобы указать tar сменить папку.
Когда вы выполняете команду, вы начинаете с исходной папки, а затем вам нужно указать папку назначения куда будет распакован архив. Вы можете извлекать файлы в любую папку, которую хотите, но не забудьте начать путь, /mnt/
Очень важно обращать внимание на прописные и строчные буквы при вводе команды в Linux, так как Downloads отличается от downloads
В этом руководстве мы рассмотрели основные шаги для выполнения конкретной задачи. Если вы не являетесь пользователем Linux, и хотите узнать больше о инструменте WSL ознакомьтесь с нашими руководствами:
Форматы .tar .zip .gz: Различия и эффективность
Вы наверняка встречали файлы с расширением .tar, .zip или .gz . А знаете ли вы, чем они отличаются, почему мы их используем, и какой формат наиболее эффективен?
Различия между tar, .zip и .gz
Если вам некогда вникать в подробности, то вот краткое и понятное объяснение:
- .tar — архивный файл без сжатия
- .zip — (как правило) сжатый архивный файл
- .gz — файл (архивный или не архивный), который сжали с помощью gzip
История развития архивов
Эта история началась в далёких 70х, как и многое из того, что связано с Unix системой и ей подобными . Морозное январское утро 1979 года ознаменовалось появлением утилиты tar в составе дистрибутива Unix V7.
Утилита tar была разработана для эффективной записи большого количества файлов на магнитные ленты. Большинство современных пользователей Linux незнакомы с ленточными накопителями. Тем не менее, tar архивы (они же tarballs) до сих пор широко используются, когда нужно упаковать несколько файлов или даже древо каталога целиком (или целый «лес» 🙂 в один файл.
Главное, что нужно запомнить о tar файле ― что это просто архив, без сжатия. Другими словами, если вы архивируете 100 файлов по 50kb, то на выходе получите архив размером около 5000kb. Используя только tar, единственное на что можно рассчитывать это экономия пространства за счёт файловой системы. Например, файл длинной 1 байт использует 4kb дискового пространства, а 1000 таких файлов займёт уже 4Mb, а tar архив с этими файлами займёт всего 1Mb.
Стоит отметить, что tar не единственный стандартный инструмент Unix для создания архивов. Программисты вероятно знакомы с форматом ar, так как он используется для создания статических библиотек, которые являются по сути архивами скомпилированных файлов. Но ar позволяет создать архив из чего угодно. Например, пакеты .deb в системе Debian не что иное, как архивы ar. А пакеты mpkg в MacOS X — это cpio архивы, сжатые с помощью gzip. Но эти форматы не стали так популярны у пользователей, как tar. Вероятно, потому что использовать команды tar удобнее и проще.
Архивы — это хорошо, но с началом эры персональных компьютеров, люди поняли, что, сжимая данные можно существенно экономить память. Поэтому, спустя десять лет после появления tar, уже в мир MS-DOS, пришёл формат архива с возможностью сжатия — zip. Наиболее распространённый алгоритм сжатия в zip — это Deflate, который использует алгоритмы LZ77 . Формат zip многие годы страдал от обременений патентами компании PKWARE.
В то же время был создан gzip, который также использовал алгоритм LZ77, но для бесплатного использования, не нарушая патент PKWARE.
Gzip создавался только для сжатия файлов, согласно ключевому понятию в философии Unix ― « Делай что-то одно, но делай это хорошо ». Таким образом, чтобы создать сжатый архив ― сначала вам нужно создать архив, например с помощью утилиты tar, а после этого сжать его. Так получается файл .tar.gz (иногда сокращается до .tgz, из-за соблюдения давно забытых ограничений в имени файла MS-DOS).
По мере развития компьютерных наук создавались и другие алгоритмы, для более эффективного сжатия. Например реализация алгоритма Барроуза — Уилера в bzip2 (отсылка к .tar.bz2 архивам). Или более новый формат xz, в котором реализован алгоритм LZMA . Этот алгоритм используется в архиваторе 7zip.
Доступность и ограничения
Сегодня вы можете без проблем использовать любой формат архивных файлов как в Linux, так и в Windows.
Благодаря нативной поддержке формата zip в Windows, zip особенно актуален для кроссплатформенного применения. Порой, zip файл можно встретить в неожиданных местах. Например, этот формат использовала компания Sun для архивов JAR, в которых распространяется скомпилированное приложение Java. Файлы OpenDocument (.odf, .odp …) в офисных приложениях, на самом деле являются zip архивами. Если вам интересно, распакуйте один из них и посмотрите, что внутри:
sh$ unzip some-file.odt
Archive:some-file.odt
extracting: mimetype
inflating: meta.xml
inflating: settings.xml
inflating: content.xm
[. ]
inflating: styles.xml
inflating: META-INF/manifest.xml
Несмотря на всё вышесказанное, в UNIX-мире я бы предпочёл использовать tar архивы, потому что формат zip недостаточно надёжно поддерживает все метаданные файловой системы Unix. Дело в том, что формат zip определяет лишь небольшой набор обязательных атрибутов файла для каждой записи: имя файла, дата изменения, право доступа. Кроме этих базовых атрибутов, архиватор может хранить и другие метаданные, в дополнительном поле заголовка zip. Но, поскольку дополнительное поле зависит от реализации, нет никаких гарантий, что вы получите тот же набор метаданных, даже в совместимых архиваторах. Давайте проверим это на примере:
sh$ ls -lsn data/team
total 0
0 -rw-r—r— 1 1000 2000 0 Jan 30 12:29 team
sh$ zip -0r archive.zip data/
sh$ zipinfo -v archive.zip data/team
Central directory entry # 5:
—————————
data/team
[. ]
apparent file type: binary
Unix file attributes (100644 octal): -rw-r—r—
MS-DOS file attributes (00 hex): none
The central-directory extra field contains:
— A subfield with ID 0x5455 (universal time) and 5 data bytes.
The local extra field has UTC/GMT modification/access times.
— A subfield with ID 0x7875 (Unix UID/GID (any size)) and 11 data bytes:
01 04 e8 03 00 00 04 d0 07 00 00.
Как видите, в дополнительном поле хранится информация о владельце (UID/GID). Если вы умеете читать шестнадцатеричный код, то можно заметить, что в этом архиве используется порядок байтов little-endian (от младшего к старшему) для хранения метаданных. «e803» это «03e8», что означает «1000» ― UID файла. А «07d0» это «d007», что означает «2000» ― GID файла.
В этом конкретном случае инструмент info-ZIP , который я использую в системе Debian, сохранил некоторые полезные метаданные в дополнительном поле. Но это не значит, что любой архиватор запишет те же данные в дополнительном поле. И нет гарантий, что другой архиватор сможет прочитать эти данные.
Таким образом существует две причины, по которым до сих пор используют tarballs. Это либо просто старая привычка, либо те причины, о которых я говорил выше, когда zip не может полностью заменить tar. Особенно если для вас важно сохранить все стандартные метаданные файла.
Тест на эффективность: Tar vs Zip vs Gz
Здесь я сравниваю эффективность сжатия. Я учитываю только сэкономленное пространство, без учёта затраченного времени. Как правило, чем эффективней алгоритм сжатия, тем больше ресурсов ЦП он требует.
Чтобы сравнить эффективность алгоритмов, я использовал файлы в популярных форматах размером около 100Mb. В таблице результаты, которые я получил в системе Debian Stretch (все размеры я узнал командой du -sh):
Создание, просмотр и распаковка архивов TAR, ZIP, RAR в Linux (tar.gz, tar.bz2, zip, rar)
Рассказываем как в терминале ОС Linux проводить обыденные операции по архивированию и разархивированию файлов и директорий с помощью TAR, ZIP и RAR.
Архивирование, просмотр и распаковка TAR
• Архивация одного файла:
• Архивация директории со сжатием gz :
• Архивация директории со сжатием bz2 :
• Распаковка архива в текущую папку:
• Распаковка архива в указанную папку:
tar -xvfс archive.tar.bz2 /path/to/folder
• Просмотр содержимого архива:
Какие ключи используются:
- -c — create — создать новый архив
- -x — extract — распаковка архива
- -v — режим вывода информации о текущем объекте архивации
- -z — применить сжатие gz
- -j — применить сжатие bz2
- -f — упаковка в файл, указание файла
- -tf — просмотр содержимого архива
Больше команд доступно в мануале:
Архивирование, просмотр и распаковка ZIP
Должны быть установлены пакеты zip и unzip :
sudo apt-get install zip unzip
• Архивация директории с помощью zip :
• Распаковка архива с помощью unzip :
• Просмотр содержимого архива unzip :
Какие ключи используются:
- -l — просмотр
- -d — указание директории для распаковки
Больше команд доступно в мануале:
Архивирование, просмотр и распаковка RAR
Должны быть установлены пакеты rar и unrar :
sudo apt-get install rar unrar
• Архивация директории с помощью rar :
• Распаковка архива с помощью unrar :
• Просмотр содержимого архива unrar :
Какие ключи используются:
- a — создать архив
- e — распаковать архив
- l — показать содержимое архива