Книга: Linux глазами хакера
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.