[me@linuxbox ~]$ mkdir -p playground/dir-{00{1..9},0{10..99},100}
[me@linuxbox ~]$ touch playground/dir-{00{1..9},0{10..99},100}/file-{A..Z}
Далее создадим архив всей песочницы:
[me@linuxbox ~]$ tar cf playground.tar playground
Эта команда создаст tar-архив с именем
[me@linuxbox ~]$ tar tf playground.tar
Для получения более подробного списка добавим параметр v (verbose — подробности):
[me@linuxbox ~]$ tar tvf playground.tar
Теперь извлечем содержимое архива в другой каталог. Для этого создадим новый каталог с именем
[me@linuxbox ~]$ mkdir foo
[me@linuxbox ~]$ cd foo
[me@linuxbox foo]$ tar xf ../playground.tar
[me@linuxbox foo]$ ls
playground
Если внимательно исследовать содержимое
Другой интересной особенностью tar является способ обработки путей в архивах. По умолчанию используются относительные пути, а не абсолютные. Для этого программа tar просто удаляет начальный слеш во всех путях. Чтобы показать это, создадим снова наш архив, но на этот раз укажем абсолютный путь к архивируемому каталогу:
[me@linuxbox foo]$ cd
[me@linuxbox ~]$ tar cf playground2.tar ~/playground
Как вы помните, командная оболочка заменит
[me@linuxbox ~]$ cd foo
[me@linuxbox foo]$ tar xf ../playground2.tar
[me@linuxbox foo]$ ls
home playground
[me@linuxbox foo]$ ls home
me
[me@linuxbox foo]$ ls home/me
playground
Как видите, здесь при извлечении архива каталог
Рассмотрим пусть и гипотетический, но все же имеющий практическую ценность пример использования tar. Представим, что нужно скопировать домашний каталог со всем его содержимым в другую систему и у нас имеется жесткий диск, подключаемый к порту USB, который можно использовать для переноса файлов. В современных системах Linux такие диски «как по волшебству» автоматически монтируются в каталог
[me@linuxbox ~]$ sudo tar cf /media/BigDisk/home.tar /home
После записи файла следует отмонтировать диск и подключить его ко второму компьютеру. И снова он автоматически монтируется в каталог
[me@linuxbox2 ~]$ cd /
[me@linuxbox2 /]$ sudo tar xf /media/BigDisk/home.tar
Обратите внимание, что здесь сначала выполняется переход в каталог
При распаковке архива можно ограничить количество извлекаемых данных. Например, можно извлечь из архива единственный файл:
tar xf
Добавление в конец команды пути к файлу гарантирует извлечение только этого файла. Можно указать несколько путей. Обратите внимание, что путь к файлу должен быть полным относительным путем в архиве. Обычно в путях к файлам нельзя использовать групповые символы; но GNU-версия tar (именно эта версия входит в состав большинства дистрибутивов Linux) поддерживает параметр --wildcards. В следующем примере используется файл
[me@linuxbox ~]$ cd foo