Гид по технологиям

Извлечь один файл или папку из tar/tar.gz

4 min read Linux Обновлено 28 Dec 2025
Извлечь один файл из tar/tar.gz
Извлечь один файл из tar/tar.gz

Кратко

Если вам нужен только один файл или каталог из большого tar-архива, нет необходимости распаковывать всё. В этой статье показано, как просмотреть содержимое архива и как извлекать отдельные файлы и папки (включая удаление и извлечение в другую директорию) с примерами команд для tar и tar.gz.

человек вытаскивает один файл из стопки документов

Просмотр содержимого tar-архива

Перед извлечением полезно посмотреть, какие пути и файлы содержатся в архиве. Для этого не нужно распаковывать архив — используйте просмотр:

# Для обычного TAR
tar -tvf archive.tar

# Для сжатого TAR.GZ
tar -ztvf archive.tar.gz

Команда выведет список файлов и директорий внутри архива с правами, размером, датой и путями. По выводу вы получите точный путь к нужному файлу или директории, который потребуется при выборочном извлечении.

просмотр содержимого tar-файла

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

Чтобы извлечь только один файл из TAR или TAR.GZ, используйте полный путь к файлу внутри архива:

# Извлечение из обычного TAR
tar -xvf archive.tar path/to/file.txt

# Извлечение из TAR.GZ
tar -zxvf archive.tar.gz path/to/file.txt

Пример: извлечь файл test1.txt из test.tar или test.tar.gz:

# Для test.tar
tar -xvf test.tar test1.txt

# Для test.tar.gz
tar -zxvf test.tar.gz test1.txt

Краткие пояснения к опциям:

  • -x — распаковать (extract).
  • -v — подробный вывод (verbose), показывает прогресс.
  • -f — имя архива (file).
  • -z — распаковать gzip-сжатый tar (для .tar.gz).

Файл будет извлечён в текущую рабочую директорию терминала и сохранит относительный путь, если он указан в архиве.

извлечение одного файла из tar

Извлечение одной директории из архива

Аналогично извлечению файла можно извлечь целую папку, указав путь к директории внутри архива:

# Извлечь директорию из обычного TAR
tar -xvf archive.tar path/to/directory

# Извлечь директорию из TAR.GZ
tar -zxvf archive.tar.gz path/to/directory

Пример: извлечь поддиректорию test/test1 из test.tar:

tar -xvf test.tar test/test1

Эта команда создаст в текущей директории копию структуры test/test1 с её содержимым.

извлечение каталога из tar

Извлечь файл или папку в другую директорию

Если вы не хотите извлекать в текущую рабочую директорию, используйте опцию -C и укажите целевую папку:

# Общий формат
tar -xvf archive.tar -C /путь/к/целевой/папке path/to/file_or_dir

# С gzip
tar -zxvf archive.tar.gz -C /путь/к/целевой/папке path/to/file_or_dir

Пример: извлечь test/test2 в ~/Downloads:

tar -xvf test.tar -C ~/Downloads/ test/test2

Опция -C должна идти перед путём внутри архива или сразу после имени архива в команде.

извлечение каталога в другую директорию

Удаление файла или директории из TAR-архива

В tar есть опция –delete для удаления записей из архива, но она работает только с несжатыми TAR-файлами. Для обычного .tar:

tar -vf archive.tar --delete path/to/file_or_dir

Важно:

  • Вы не можете напрямую удалить файл из .tar.gz: сначала нужно распаковать gzip (получить .tar), выполнить удаление, затем снова сжать.

Шаги при работе с .tar.gz:

# Распаковать gzip (превратит archive.tar.gz в archive.tar)
gzip -d archive.tar.gz

# Удалить из несжатого TAR
tar -vf archive.tar --delete path/to/file_or_dir

# Сжать обратно в gzip
gzip -f archive.tar

Опция –delete изменяет сам архив: у неё есть ограничения по формату архива и по файловой системе, поэтому всегда имейте резервную копию архива перед модификацией.

удаление файла из tar

Когда этот подход не сработает

  • Архив повреждён или список файлов не может быть корректно прочитан — просмотреть и извлечь не получится.
  • Если в архиве используются символические ссылки и вам нужна именно исходная цель ссылки, а не сама ссылка, нужно понимать, что tar извлечёт ссылку как таковую.
  • Для .tar.gz нельзя использовать –delete без предварительной распаковки gzip.

Альтернативные подходы

  • Использовать bsdtar (иногда быстрее и с несколько иным набором опций).
  • Для больших удалённых архивов сначала просмотреть список на сервере и загрузить только нужные файлы (rsync, sshfs или потоковый доступ), чтобы не передавать весь архив по сети.
  • Для сложных схем хранения использовать архиваторы, поддерживающие случайный доступ (например, zip с центральной таблицей), но при этом учесть совместимость.

Шпаргалка команд

# Просмотр
tar -tvf archive.tar
tar -ztvf archive.tar.gz

# Извлечение одного файла
tar -xvf archive.tar path/to/file
tar -zxvf archive.tar.gz path/to/file

# Извлечение каталога
tar -xvf archive.tar path/to/directory

# Извлечение в другую папку
tar -xvf archive.tar -C /dest/path path/to/file_or_dir

# Удаление (только для .tar)
tar -vf archive.tar --delete path/to/file

Роли и простой чек‑лист

Администратор:

  • Показать список архива перед изменением.
  • Сделать резервную копию архива перед удалением.
  • Проверить права доступа в целевой директории.

Разработчик/пользователь:

  • Убедиться, что путь внутри архива указан корректно.
  • Проверить, что в архиве нет дубликатов с разными путями.

Чек‑лист перед изменением архива:

  • Просмотрел содержимое (tar -tvf).
  • Сделал бэкап архива.
  • Проверил свободное место и права.
  • Провёл операцию в тестовой среде (по возможности).

Критерии приёмки

  • Извлечённый файл или папка присутствуют в целевой папке и имеют ожидаемые свойства (размер, дата, права).
  • При удалении из архива файл действительно больше не перечисляется через tar -tvf.
  • Нет повреждений архива после операций (проверяется командой tar -tvf).

Советы по производительности и безопасности

  • Для очень больших архивов сначала используйте tar -tvf, чтобы убедиться, что извлечение ограничено минимально.
  • При работе с удалёнными серверами используйте ssh-пайплайны: tar -xvf - < <(ssh user@host ‘tar -cvf - path/to/file’) или аналогичные схемы, чтобы избежать записи промежуточных крупных файлов на диск.
  • Храните исходные архивы и бэкапы на отдельном физическом носителе или в версионированном хранилище.

Короткое резюме

Извлечение отдельных файлов или папок из tar/tar.gz — быстрый и экономный по времени способ работы с архивами. Всегда просматривайте содержимое перед операцией, используйте -C для указания целевой директории и делайте резервные копии перед изменением архива.

Важно: для операций удаления работайте с несжатыми .tar или распаковывайте .tar.gz перед использованием –delete.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отключить всплывающее «Открыть в приложении» на Reddit
Инструкция

Отключить всплывающее «Открыть в приложении» на Reddit

Как получать конструктивную обратную связь на фотографии
Фотография

Как получать конструктивную обратную связь на фотографии

Идеальный заголовок для LinkedIn
Карьера

Идеальный заголовок для LinkedIn

Отключить Bixby на Samsung — полное руководство
Android.

Отключить Bixby на Samsung — полное руководство

Phone Link на Windows — руководство по функциям
Windows

Phone Link на Windows — руководство по функциям

Панель быстрого доступа в Excel — как настроить
Excel

Панель быстрого доступа в Excel — как настроить