tar (англ. tape archive) — формат битового потока или файла архива, а также название традиционной для Unix программы для работы с такими архивами. Программа tar была стандартизирована в POSIX.1-1998, а также, позднее — в POSIX.1-2001. Первоначально программа tar использовалась для создания архивов на магнитной ленте, а в настоящее время tar используется для хранения нескольких файлов внутри одного файла для распространения программного обеспечения, а также по прямому назначению — для создания архива файловой системы. Одним из преимуществ формата tar при создании архивов является то, что в архив записывается информация о структуре каталогов, о владельце и группе отдельных файлов, а также временны́е метки файлов.
tar | |
---|---|
Расширение |
.tar |
MIME-тип | application/x-tar[1] |
Сигнатура |
u s t a r \0 0 0 на байте 257 ("ustar", нулевой байт, два '0', 8 байтов в сумме) |
Разработчик | Bell Labs |
Опубликован | январь 1979 |
Последний выпуск | 1.35 (18 июля 2023 ) |
Тип формата | архиватор |
Содержится в | gzip, bzip2, lzip, lzma, xz, lzop, compress, Zstandard |
Открытый формат? | да |
Как и другие утилиты Unix, tar
— специализированная программа, которая следует философии Unix «делать только одну вещь» (в данном случае — работать с архивами формата tar), «но делать её хорошо». Поэтому tar
не создаёт сжатых архивов, а использует для сжатия внешние утилиты, такие, как gzip и bzip2. Ранее для сжатия использовалась также утилита compress, которая практически вышла из употребления.
Примечание
правитьИз-за достаточно поздней стандартизации существует несколько похожих, но не до конца совместимых форматов. В частности, различие между GNU tar и SUN Solaris tar наблюдается при длине имени файла, включаемого в архив, более 100 символов или размере включаемого в архив файла более 8 ГБ.
Расширения имён файлов
правитьДля файлов, содержащих архивы tar, традиционно применяется расширение имени файла .tar
. В случае дополнительного сжатия другими программами применяются следующие расширения:
Синтаксис
правитьtar [-опции] <имя архива tar> [файлы или папки, которые необходимо поместить в архив при сжатии]
Основные опции:
-c, --create
— создать архив;-a, --auto-compress
— дополнительно сжать архив с компрессором который автоматически определить по расширению архива. Если имя архива заканчивается на*.tar.gz
то с помощью GZip, если*.tar.xz
то с помощью XZ,*.tar.zst
для Zstandard и.т.п;-r, --append
— добавить файлы в конец существующего архива;-x, --extract, --get
— извлечь файлы из архива;-f, --file
— указать имя архива;-t, --list
— отобразить список файлов и папок в архиве;-v, --verbose
— выводить список обработанных файлов.
Примеры
правитьСоздание архива archive.tar
из файла README.txt
и каталога src
:
tar -cvf archive.tar README.txt src
Извлечение содержимого archive.tar
в текущий каталог:
tar -xvf archive.tar
Создание архива archive.tar.gz
из файла README.txt
и каталога src
и сжатие его с помощью gzip :
tar -cavf archive.tar.gz README.txt src
Извлечение содержимого archive.tar.gz
в текущий каталог:
tar -xvf archive.tar.gz
Tarpipe
правитьTarpipe — процесс создания tar-архива в stdout и последующего извлечения содержания архива в другом каталоге из stdin. Это очень удобный метод копирования содержания одной файловой системы в другую, так как происходит полное копирование, включая атрибуты файлов, символические ссылки, файлы устройств.
tar -C "каталог_источника" -cf - . | tar -C "каталог_назначения" -xvf -
- Tar over SSH
tar -C каталог_источника -czpvf - . | ssh user@host "cat > каталог_назначения/backup.tgz"
- Tar & 7-zip
Чтобы сделать резервную копию каталога:
tar cf - directory | 7za a -si directory.tar.7z
Чтобы восстановить из резервной копии:
7za x -so directory.tar.7z | tar xf -
Примечания
править- ↑ https://svn.apache.org/viewvc/httpd/httpd/tags/2.4.57/docs/conf/mime.types?view=markup#l1320
- ↑ Computational Chemistry Pre-Compiled Binaries for Linux . Дата обращения: 15 июля 2020. Архивировано 15 июля 2020 года.
Ссылки
править- Официальная страница (англ.) на сайте GNU
- Файл 'tar.h' из исходных текстов GNU tar
- Подробная информация о заголовках архивов tar и USTAR
- man-страница tar(1) (недоступная ссылка) из OpenBSD
- man-страница tar(1) из FreeBSD