Операционные системы 05.07.2016 06:40
Операционные системы
Лабораторная работа № 3
Создание резервных копий и архивов
> file1 dat1 > my abc
file2 > dat2 > my1 321
file3 > dat my2 > XyZy
gg ee > pp 1234Y
ggg > eee pPpP > Pm
- 1. В домашнем каталоге создать каталог dir1. В нем создать два подкаталога – dir11 и dir12. Создать в этих каталогах файлы (имена указаны на рисунке выше). В те, которые помечены знаком >, поместить произвольную информацию.
- 2. Создать архив arc1.tar для каталога dir11 с удалением оригинальных файлов, при этом файлы dat и eee не должны попасть в архив. Просмотреть содержимое архива.
- 3. Создать в каталоге dir1 каталог dir13. Распаковать в каталог dir13 архив arc1.tar в интерактивном режиме.
- 4. Извлечь из архива arc1.tar файлы с именами, начинающимися на "g", при этом вывести список обрабатываемых файлов.
- 5. Удалить в интерактивном режиме из архива arc1.tar файлы, имена которых заканчиваются на цифру.
- 6. Создать архив arc2.tar и поместить в него файлы из каталога dir11, имена которых состоят из 3 символов. Просмотреть содержимое архива.
- 7. Создать в каталоге dir1 архив arc3.tar со сжатием с помощью gzip, включив в него файлы каталога dir13, в именах которых есть буква «е».
- 8. Упаковать все файлы каталога dir12 с помощью команды gzip, при этом отобразить имена и процент сжатия. Просмотреть содержимое архива.
- 9. Распаковать файлы, имена которых состоят из трех символов, с помощью команды gzip.
- 10. Распаковать файлы, в именах которых присутствуют прописные буквы, с помощью команды gzip, при этом вывести список обрабатываемых файлов.
- 11. Распаковать файлы, имена которых состоят из двух символов, с помощью команды gunzip.
Создание резервных копий и архивов
Программа архивации файлов tar
Программа tar предназначена для архивирования файлов и извлечения их из архива. Под архивированием понимается помещение содержимого нескольких файлов в один файл – так называемый файл-архив, использование которого упрощает хранение и передачу файлов. Изначально программа tar предназначалась для создания архивов на магнитной ленте, и ее название – это сокращение от англ. tape archiver – архиватор на ленте. Программа tar позволяет создавать архивы на жестком диске и на съемных носителях.
Команда для выполнения программы tar имеет следующий синтаксис:
tar флаги имя_архива имя_файла/каталога [дополнительные_флаги]
Первым в командной строке должен идти один из флагов, обозначающих действие, выполняемое командой: -A, -c, -d, -r, -t, -u, -x. Далее следуют необязательные флаги, обозначающие способ выполнения действия: -w, -z, -v. За ними следует флаг -f, который указывает, что далее следует имя архивного файла, над которым выполняется действие. Обязательное указание флага -f для работы с архивами на диске связано с тем, что, в силу исторических причин, по умолчанию программа выполняет архивирование файлов на магнитную ленту, с которой связан файл /dev/rmt0. После имени архивного файла могут идти дополнительные флаги.
При указании в качестве имени архива символа «-» запись данных осущесталяется на стандартный вывод, что позволяет использовать команду tar в конвейерах.
Последними в командной строке указываются одно или более имен файлов или каталогов, которые необходимо поместить в архив. При указании имени каталога предполагается, что все его подкаталоги будут включены в архив.
Флаги команды tar, обозначающие действие:
|
-A, --concatenate
|
добавляет файлы в архив
|
|
-с, --create
|
создает новый архив
|
|
-d, --compare
|
обнаруживает различие между членами архива и их «исходниками» на диске
|
|
-r, --append
|
добавить файлы в конец архива
|
|
-t, --list
|
выводит содержимое архива
|
|
-u, --update
|
добавляет в архив только те файлы, которых нет в архиве, или измененные файлы
|
|
-x, --extract
|
извлекает файлы из архива
|
Флаги команды tar, обозначающие способ выполнения действия:
|
-v, --verbose
|
выводит список обрабатываемых файлов
|
|
-w, --interactive
|
запрашивает подтверждение для каждого действия
|
|
-z, --gzip
|
сжимает/распаковывает файлы с помощью программы gzip (см. ниже)
|
|
-M, --multi-volume
|
работает с многотомным архивом
|
|
-T,
--files-from file
|
указывает взять имена обрабатываемых файлов из файла file
|
|
-W, --verify
|
проверяет целостность архива после его создания
|
Дополнительные флаги команды tar:
|
--delete
|
удаляет файлы из архива
|
|
--remove-files
|
удаляет оригинальные файлы после включения их в архив
|
|
--exclude file
|
исключает из обработки файл file
|
|
-X file,
--exclude-from file
|
исключает из обработки файл(ы), перечисленные в файле file
|
|
-C dir,
--directory dir
|
распаковывает файлы в указанный каталог dir
|
|
--wildcards
|
позволяет использовать в именах файлов шаблоны подстановки
|
Примечание: в некоторых Unix-подобных ОС флаг –-wildcards для команды tar установлен по умолчанию.
Примеры:
|
tar –cvWf arc/bin.tar /bin
|
архивирует каталог /bin в файл bin.tar, который находится в подкаталоге arc текущего каталога, при этом выводит имена обрабатываемых файлов и проверяет целостность архива после его создания
|
|
tar –czwf docs.tar a1 b2 c3
|
помещает в архив docs.tar файлы текущего каталога a1, b2 и с3 со сжатием с помощью gzip и подтверждением каждого выполняемого действия
|
|
tar –tf samp.tar
|
просмотр содержимого архивного файла samp.tar
|
|
tar –cf myarc.tar ~/documents --exclude ~/documents/file.txt --exclude ~/documents/doc.txt
|
архивирует каталог ~/documents в файл myarc.tar, исключая из обработки файлы ~/documents/file.txt и ~/documents/doc.txt
|
|
tar –xf example.tar –C /tmp
|
распаковывает архив example.tar в каталог /tmp
|
Программа сжатия и упаковки файлов gzip
Программы сжатия, используя специальные алгоритмы кодирования данных, позволяют записывать содержимое файлов в более компактном виде. Одной из самых популярных программ в Unix для выполнения сжатия является программа gzip. Формат команды для выполнения программы gzip:
gzip флаги имя_файла/каталога
При выполнении упаковки каждый файл замещается сжатой версией с таким же именем, как у оригинального файла, к которому добавляется расширение .gz. При этом сохраняются владелец файла, группа, права доступа, а также временные метки оригинала. Если имена файлов не указаны или вместо имени файла стоит дефис, содержимое стандартного ввода сжимается и пересылается на стандартный вывод. Программа gzip сжимает только обычные файлы, игнорируя символические ссылки.
Флаги команды gzip:
|
-с, --stdout
|
направляет результат обработки на стандартный вывод, сохраняя оригинальные файлы неизмененными
|
|
-d, --decompress
|
выполняет распаковку файлов
|
|
-f, --force
|
перезаписывает выходные файлы и сжимает ссылки
|
|
-l,--list
|
выводит для каждого упакованного файла информацию о размере упакованного и оригинального файла, процент сжатия и т. д.
|
|
-r, --recursive
|
рекурсивно выполняет обработку файлов во всех каталогах
|
|
-S, --suffix suffix
|
указывает вместо .gz использовать указанное расширение suffix
|
|
-t, --teat
|
проверяет целостность сжатых файлов
|
|
-v, --verbose
|
отображает в процессе обработки имена файлов и процент сжатия
|
|
-1...-9
|
указывает степень сжатия (-1 – минимальное наиболее быстрое, -9 – максимальное, наиболее медленное); по умолчанию принята степень сжатия -6
|
Примеры:
|
gzip –rv /home
|
упаковать рекурсивно все файлы каталога /home, при этом вывести имена обрабатываемых файлов
|
|
gzip –d --wildcards arch/a*.gz
|
распаковать файлы каталога arch, имена которых начинаются на букву а
|
|
gzip –c7 myfile > archive.gz
|
упаковать файл myfile в файл archive.gz со степенью сжатия 7 и сохранением оригинальных файлов
|
Программа распаковки архивных файлов gunzip
Программа gunzip распаковывает файлы, ранее созданные с помощью программы gzip. При этом она замещает сжатые файлы их оригинальными версиями, удаляя расширения из имен файлов.
Формат команды вызова программы gunzip и ее флаги совпадают с форматом и флагами команды gzip.