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

Просмотр содержимого tar-архива
Перед извлечением полезно посмотреть, какие пути и файлы содержатся в архиве. Для этого не нужно распаковывать архив — используйте просмотр:
# Для обычного TAR
tar -tvf archive.tar
# Для сжатого TAR.GZ
tar -ztvf archive.tar.gzКоманда выведет список файлов и директорий внутри архива с правами, размером, датой и путями. По выводу вы получите точный путь к нужному файлу или директории, который потребуется при выборочном извлечении.
Извлечение одного файла из архива
Чтобы извлечь только один файл из 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 -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 с её содержимым.
Извлечь файл или папку в другую директорию
Если вы не хотите извлекать в текущую рабочую директорию, используйте опцию -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.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.
Похожие материалы
Отключить всплывающее «Открыть в приложении» на Reddit
Как получать конструктивную обратную связь на фотографии
Идеальный заголовок для LinkedIn
Отключить Bixby на Samsung — полное руководство
Phone Link на Windows — руководство по функциям