Команда Tar в Linux (создание и извлечение архивов)

Команда Tar для Linux

Команда 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-архивов принято добавлять суффикс compressor к имени файла архива. Например, если архив был сжат с помощью 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
 -rw-r--r-- linuxize/users 0 2018-09-08 01:19 file1 -rw-r--r-- linuxize/users 0 2018-09-08 01:19 file2 -rw-r--r-- linuxize/users 0 2018-09-08 01:19 file3

Извлечение архива 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: README: Not found in archive tar: Exiting with failure status due to previous errors

Извлечение файлов из архива 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

Заключение

Чаще всего команда tar используется для создания и распаковки tar-архива. Для распаковки архива используйте команду tar -xf , указав имя архива, а для создания нового — команду tar -czf указав имя архива, а также файлы и каталоги, которые нужно добавить в архив.

Дополнительную информацию о команде tar можно найти на странице документации Gnu tar .

терминал тары

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *