13.5.2. tar

We use cookies. Read the Privacy and Cookie Policy

13.5.2. tar

Копирование по одному файлу не очень удобно. Лучше, когда все находится под одной крышей. В Linux есть утилита, которая собирает все файлы в один. Этот процесс называют архивированием, но вы должны учитывать, что tar не сжимает файлы. Если вы объединяете файлы общим размером в 2 Мбайта, то архив будет иметь размер чуть больше (размер всех файлов плюс заголовок tar).

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

Для архивирования, как минимум, нужно выполнить команду:

tar cf архив.tar директория

Здесь у нас два параметра:

? c — указывает на необходимость создания архива;

? f — назначает архивный файл или устройство (по умолчанию используется /dev/rmt0).

Итак, для архивирования директории /home выполняем следующую команду:

tar cf backup.tar /home

При использовании параметров cf файлы в архив попадают с сохранением пути. Если распаковать созданный нами чуть выше архив, то в результате в текущем каталоге будет создана папка /home, а в ней уже будут располагаться все пользовательские директории. Например, если разархивировать из директории /home, то папки пользователей окажутся в /home/home, а если находится в /etc, то пользователи увидят свои директории в /etc/home.

Чтобы добиться правильного результата, нужно перейти в корень диска и выполнять команду там:

cd /

tar xf /home/backup.tar

В данном случае мы из корневого каталога разархивируем резервную копию, которая находится в файле /home/backup.tar.

Помимо этого, для архивных операций могут пригодиться следующие ключи утилиты tar:

? v — вывести на экран информацию об архивируемом (или распаковываемом) в данный момент файле;

? z — найти и обработать при распаковке gzip-архивы;

? p — разархивировать всю информацию о безопасности;

? d — найти отличия между архивом и файлом в системе;

? t — просмотреть содержимое архива;

? u — обновить файлы в архиве, которые были изменены;

? n date — добавить в архив только те файлы, которые изменены позже даты, указанной в параметре date.

? P — не удалять первый символ "/". В этом случае, откуда бы вы не распаковывали, файлы попадут на свое родное место.

С помощью утилиты tar можно архивировать сразу несколько директорий. Следующая команда помещает в архив /home и /etc:

tar cf backup.tar /home /etc

Чтобы просмотреть содержимое архива, можно выполнить команду:

tar tvf backup.tar

В ответ на это, на экране будут показаны все файлы и директории архива, их права доступа и владельцы. Результат можно увидеть в листинге 13.1.

Листинг 13.1. Результат просмотра содержимого архива

drwx------ 504/504    0 2004-11-27 20:24:05 home/adr/

drwxr-xr-x 504/504    0 2004-11-27 20:24:05 home/adr/.kde/

drwxr-xr-x 504/504    0 2004-11-27 20:24:05 home/adr/.kde/share/

-rw-r--r-- 504/504  118 2004-11-27 20:24:05 home/adr/.gtkrc

-rw-r--r-- 504/504   24 2004-11-27 20:24:05 home/adr/.bash_logout

-rw-r--r-- 504/504  191 2004-11-27 20:24:05 home/adr/.bash_profile

-rw-r--r-- 504/504  124 2004-11-27 20:24:05 home/adr/.bashrc

-rw-r--r-- 504/504    5 2004-11-27 20:24:05 home/adr/text

-rw-r--r-- 504/504 2247 2004-11-27 20:24:05 home/adr/.emacs

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

Данный текст является ознакомительным фрагментом.