Команда 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
0 комментариев