13.5.2. tar
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
Посмотрите на последнюю колонку, где показано расположение файла. Обратите внимание, что путь не начинается с символа "/", указывающего на корень диска. Поэтому такой архив нужно распаковывать в корне, иначе он будет создаваться в текущей директории.
Данный текст является ознакомительным фрагментом.