Проверьте свои навыки на всех наших услугах хостинга и получите скидку 15%!

Используйте код при регистрации:

Skills
01.08.2025

Как размонтировать файл в Linux: Продвинутое руководство для опытных пользователей

Извлечение файлов .tar, .tar.gz, .tar.bz2 и других tar-файлов является фундаментальным навыком в системном администрировании Linux и рабочих процессах DevOps. Хотя на первый взгляд работа с tar может показаться простой, опытные пользователи могут использовать расширенные флаги и техники для повышения производительности, создания сценариев и тонкого контроля.

В этом руководстве вы узнаете обо всем: от базовой декомпрессии до условного извлечения, бенчмаркинга и работы с поврежденными архивами.

Что такое файл .tar?

Файл .tar (сокращение от Tape Archive) – это консолидированный архив, который объединяет несколько файлов в один, сохраняя структуру файлов, права доступа и временные метки. По умолчанию он не сжимается. Для сжатия часто используются такие форматы, как .gz, .bz2, .xz или .zstd.

Основные команды извлечения

1. Извлечение файла .tar (без сжатия)

tar -xf archive.tar

2. Извлечение файла с расширением .tar.gz или .tgz

tar -xzf archive.tar.gz

3. Извлечение файла .tar.bz2

tar -xjf archive.tar.bz2

4. Извлечение файла .tar.xz

tar -xJf archive.tar.xz

5. Извлечение файла .tar.zst (Zstandard)

tar --use-compress-program=unzstd -xf archive.tar.zst

Общие дополнительные флаги

ФлагФункция
-xИзвлечение
-fИспользовать архивный файл
-vВербозный вывод (список файлов)
-CПереход в каталог перед извлечением
–strip-components=NУдалить ведущие N элементов пути
–wildcardsВключить фильтрацию подстановочных знаков
–no-same-ownerИзбегать смены владельцев файлов при извлечении
–overwriteПринудительная перезапись без подсказок
–exclude=PATTERNИсключить файлы, соответствующие шаблону

Дополнительные примеры

Извлечение в определенную директорию

tar -xf archive.tar.gz -C /opt/myapp

Удалите папку верхнего уровня (выровняйте структуру)

tar -xf archive.tar.gz --strip-components=1

Извлечение определенных файлов

tar -xf archive.tar.gz путь/к/файлу1 путь/к/файлу2

Извлечение совпадающего шаблона с помощью подстановочных знаков

tar -xf archive.tar.gz --wildcards '*.conf'

Извлечение с исключением некоторых путей

tar -xf archive.tar.gz --exclude='*.log'

Время извлечения контрольной точки

время tar -xf archive.tar.gz

Работа с крайними случаями

? Файл поврежден

Используйте tar с параметром –ignore-zeros, чтобы пропустить поврежденные блоки:

tar -xzf broken.tar.gz --ignore-zeros

? Проверьте архив перед извлечением

tar -tf archive.tar.gz # Список файлов

Проверка целостности (для тарболов с gzip-сжатием)

gzip -t archive.tar.gz && echo "Архив OK"

Советы по написанию сценариев для сисадминов

Используйте tar в сценариях резервного копирования/восстановления:

#!/bin/bash
TARGET_DIR="/var/www"
ARCHIVE="/backups/site-$(date +%F).tar.gz"

tar -czf "$ARCHIVE" -C "$TARGET_DIR" . && echo "Backup saved to $ARCHIVE"

Или автоматически распакуйте и установите:

#!/bin/bash
SRC="$1"
DEST="$2"
mkdir -p "$DEST"
tar -xzf "$SRC" -C "$DEST" --strip-components=1

Файлы tar занимают центральное место в упаковке, резервном копировании и развертывании Linux. Освоив флаги извлечения и интегрировав tar в сценарии, вы сможете работать с архивами с хирургической точностью – извлекать только то, что необходимо, сохранять права собственности, сглаживать пути или автоматизировать весь рабочий процесс.

Краткая справка

# Basic
tar -xf file.tar    # No compression
tar -xzf file.tar.gz # Gzip
tar -xjf file.tar.bz2 # Bzip2
tar -xJf file.tar.xz # XZ
tar --use-compress-program=unzstd -xf file.tar.zst    # Zstandard

# Common options
tar -xvf archive.tar    # Verbose
tar -C /target/dir -xf file.tar.gz    # Extract to folder
tar --strip-components=1 -xf file.tar.gz    # Remove top-level dir

Проверьте свои навыки на всех наших услугах хостинга и получите скидку 15%!

Используйте код при регистрации:

Skills