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

Изначально Tar был разработан для создания архивов для хранения файлов на магнитной ленте, поэтому он и получил свое название «Tape AR chive».

В этой статье показано, как использовать tarкоманду для извлечения, просмотра и создания tar-архивов с помощью практических примеров и подробных объяснений наиболее распространенных параметров tar.

Синтаксис команды tar

Существует две версии tar, BSD tar и GNU tar , с некоторыми функциональными отличиями. Большинство систем Linux поставляются с предустановленной по умолчанию GNU tar. Общий синтаксис tarкоманды следующий:

tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]

Копировать

  • OPERATION- Допускается и требуется только один аргумент операции. Наиболее часто используемые операции:
    • --create( -c) — создать новый tar-архив.
    • --extract( -x) — извлечь весь архив или один или несколько файлов из архива.
    • --list( -t) - Показать список файлов, включенных в архив
  • OPTIONS - Наиболее часто используемые операции:
    • --verbose( -v) — Показать файлы, обрабатываемые командой tar.
    • --file=archive=name( -f archive-name) — указывает имя файла архива.
  • ARCHIVE_NAME- Название архива.
  • FILE_NAME(s)- Разделенный пробелами список имен файлов, которые необходимо извлечь из архива. Если не указан, извлекается весь архив.

При выполнении команд tar вы можете использовать длинную или короткую форму tarопераций и параметров. Длинные формы более удобочитаемы, а короткие быстрее набираются. Длинные варианты начинаются с двойного тире ( --). Перед короткими вариантами ставится дефис ( -), который можно опустить.

Создание архива tar

Tar поддерживает широкий спектр программ сжатия, таких как gzip, bzip2, lzip, lzma, lzopи xz. compressПри создании сжатых tar-архивов принято добавлять суффикс компрессора к имени файла архива. Например, если архив был сжат с помощью gzip , он должен называться archive.tar.gz.

Чтобы создать tar-архив, используйте -cпараметр, за которым следует -fимя архива.

Например, чтобы создать архив с именем archive.tarиз файлов с именами file1, file2, file3, вы должны выполнить следующую команду:

tar -cf archive.tar file1 file2 file3

Вот эквивалентная команда с параметрами длинной формы:

tar --create --file=archive.tar file1 file2 file3

Вы можете создавать архивы из содержимого одного или нескольких каталогов или файлов. По умолчанию каталоги рекурсивно архивируются, если --no-recursionне указан параметр. В следующем примере будет создан архив с именем user_backup.tarкаталога /home/user:

tar -cf backup.tar /home/user

Используйте эту -vопцию, если хотите увидеть обрабатываемые файлы.

Создание архива Tar Gz

Gzip — самый популярный алгоритм сжатия tar-файлов. При сжатии tar-архивов с помощью gzip имя архива должно заканчиваться либо на , tar.gzлибо на tgz.

Опция -zуказывает tar сжимать архив, используя gzipалгоритм по мере его создания. Например, чтобы создать архив tar.gz из заданных файлов, выполните следующую команду:

tar -czf archive.tar.gz file1 file2

Создание архива Tar Bz2

Другой популярный алгоритм сжатия tar-файлов — bzip2. При использовании bzip2 имя архива должно заканчиваться на tar.bz2или tbz.

Чтобы сжать архив с bzip2алгоритмом, вызовите tarс -jопцией. Следующая команда создает tar.bz2архив из заданных файлов:

tar -cjf archive.tar.bz2 file1 file2

Список архивов Tar

При использовании с параметром --list( -t) tarкоманда выводит содержимое tar-архива без его распаковки.

Команда ниже выведет список содержимого archive.tarфайла:

tar -tf archive.tar
file1
file2
file3

Чтобы получить дополнительную информацию, такую ​​как владелец файла, размер файла, временная метка , используйте параметр --verbose( -v):

tar -tvf archive.tar

Извлечение архива Tar

Большинство заархивированных файлов в Linux заархивированы и сжаты с использованием формата tar или tar.gz. Очень важно знать, как извлечь эти файлы из командной строки.
Чтобы извлечь tar-архив, используйте параметр --extract( -x), за которым следует имя архива:

tar -xf archive.tar

Также часто добавляется -vвозможность печатать имена извлекаемых файлов.

tar -xvf archive.tar

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

По умолчанию tar извлекает содержимое архива в текущий рабочий каталог . Используйте --directory( -C) для извлечения архивных файлов в определенный каталог:

Например, чтобы извлечь содержимое архива в /opt/filesкаталог, вы можете использовать:

tar -xf archive.tar -C /opt/files

Извлечение архивов Tar Gz и Tar Bz2

При извлечении сжатых архивов, таких как tar.gz или tar.bz2 , вам не нужно указывать параметр распаковки. Команда та же, что и при распаковке tarархива:

tar -xf archive.tar.gz
tar -xf archive.tar.bz2

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

Иногда вместо извлечения всего архива может потребоваться извлечь из него только несколько файлов. Чтобы извлечь определенные файлы из tar-архива, добавьте через пробел список имен файлов, которые нужно извлечь, после имени архива:

tar -xf archive.tar file1 file2

При извлечении файлов вы должны указать их точные имена, включая путь, напечатанный --list( -t).

Извлечение одного или нескольких каталогов из архива аналогично извлечению файлов:

tar -xf archive.tar dir1 dir2

Если вы попытаетесь извлечь несуществующий файл, появится сообщение об ошибке, подобное следующему:

tar -xf archive.tar README

Извлечение файлов из архива Tar с использованием подстановочного знака

Чтобы извлечь файлы из архива на основе шаблона подстановочных знаков, используйте --wildcardsпереключатель и укажите шаблон в кавычках, чтобы оболочка не интерпретировала его.

Например, чтобы извлечь файлы, имена которых заканчиваются на .js(файлы Javascript), вы можете использовать:

tar -xf archive.tar --wildcards '*.js'

Добавление файлов в существующий архив Tar

Чтобы добавить файлы или каталоги в существующий tar-архив, используйте операцию --append( ).-r

Например, чтобы добавить файл с именем newfileв archive.tar, вы должны запустить:

tar -rvf archive.tar newfile

Удаление файлов из архива Tar

Используйте --deleteоперацию для удаления файлов из архива.

В следующем примере показано, как удалить файл file1из archive.tar:

tar --delete -f archive.tar file1