ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Создание и извлечение архивов с помощью команды Tar в Linux

Как установить tar.gz в CentOS

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

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

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

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

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

Прежде чем перейти к использованию команды 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. Длинные формы более читабельны, а короткие формы – быстрее. Опции длинной формы имеют префикс двойной тире ( --). Параметры короткой формы имеют префикс с одним тире ( -), который можно опустить.

Используйте оператор -c для создания архива tar. Например, чтобы создать архивный файл с именем archive.tarиз файлов с именем file1file2file3 выполните следующую команду:

tar -cf archive.tar file1 file2 file3

 

Вот эквивалентная команда, использующая параметры длинной формы:

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

 

В следующем примере будет создан архив backup.tar из каталога /home/username:

tar -cf backup.tar /home/username

 

Вы можете создавать архивы из содержимого одного или нескольких каталогов или файлов. По умолчанию каталоги архивируются рекурсивно, если не указан параметр --no-recursion. Используйте параметр -v, если хотите просмотреть файлы, которые обрабатываются.

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

Чтобы создать архив tar.gz из заданных файлов, вы можете использовать следующую команду:

tar -czf archive.tar.gz file1 file2

 

Опция  -zсообщает tar сжать архив, используя алгоритм  gzip.

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

Когда указана опция  -j , tar будет использовать алгоритм bzip2 сжатия архива.

Следующая команда создаст архив tar.bz2 из заданных файлов:

tar -cjf archive.tar.bz2 file1 file2

 

Чтобы перечислить содержимое tar-архива, используйте операцию --list-t).

tar -tf archive.tar

 

file1
file2
file3

 

Если вы укажете содержимое архива с помощью параметра --verbose-v), tar будет печатать больше информации, например, владельца, размера файла, метки времени и т.д.:

tar -tvf archive.tar

 

-rw-r--r-- linuxize/users       0 2018-09-08 20:15 file1
-rw-r--r-- linuxize/users       0 2018-09-08 20:15 file2
-rw-r--r-- linuxize/users       0 2018-09-08 20:15 file3

 

Для извлечения tar-архива используйте оператор --extract-x) и укажите имя файла архива:

tar -xf archive.tar

 

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

tar -xvf archive.tar

 

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

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

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

 

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

tar -xf archive.tar.gz

 

tar -xf archive.tar.bz2

 

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

tar -xf archive.tar file1 file2

 

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

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

tar -xf archive.tar dir1 dir2

 

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

tar -xf archive.tar README

 

tar: README: Not found in archive
tar: Exiting with failure status due to previous errors

 

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

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

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

 

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

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

tar -rvf archive.tar newfile

 

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

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

tar --delete -f archive.tar file1

 

К настоящему времени у вас должно быть хорошее понимание того, как создавать и извлекать архивы tar.

Exit mobile version