Использование tar в Unix/Linux
tar — является одним из инструментов, которые мы используем часто для создания бекапов. В своей теме «Использование tar в Unix/Linux» приведу примеры использования tar в Unix/Linux.
Опции.
Для создания архива:
-c
Создать архив.
-f
Создайте файл с выходом (в противном случае он идет к терминалу).
-j
Использовать сжатие bzip2.
-J
Использовать сжатие xz.
—lzma
Использовать сжатие lzma.
-z
Использовать сжатие gzip.
-v
Вывод в терминал что происходит (действия).
Для извлечения:
-x
Извлечение архива.
-v
Вывод в терминал что происходит (действия).
-p
Сохранение прав доступа при извлечении (игнорирует маску).
-k
Не перезаписывать существующие файлы.
-m
Не восстанавливать время модификации.
-O
Записать записи»entries» на stdout, не восстановит диск.
Другие опции:
-t
Получить оглавление (содержание) из архива.
-d
Разница архива и файловой системы.
-b
Использовать #512 байт записи в I/O блоках.
-W
Опция служит для проверки архива.
-w
Итерактивный режим.
-r
Служит для добавления файлов в архив (уже созданный).
wildcards
Специальный символ для команды tar в unix .
Примеры.
Создать архив каталога:
# tar cf directory.tar directory/
Создать архив с кучей файлов (с выбранных файлов):
# tar cf directory.tar file1 file2 file3
Запаковать tar-ром только .mp3 файлы в текущем каталоге с использованием BZIP сжатие и показывать все что происходит на консоль:
# tar -cvf my_mp3_collection.tar ./*.mp3
Создать архив домашнего каталога/home/captain/ и сохраняя разрешения:
# tar cvpf captain.tar /home/captain/
Создать архив каталога /etc/ , но исключать каталог apache2:
# tar cvf backup_etc_without_apache_folder.tar –exclude='/etc/apache2/'
Используя сжатие
Создать архив сжатый с bzip2 и с выводом на экран всех действий:
# tar cjvf public_html.tar.bz2 /home/captain/public_html
Создать архив сжатый с gzip и с выводом на экран всех действий:
# tar czvf public_html.tar.gz /home/captain/public_html
Список содержимого в архиве
Просмотреть содержимое архива можно так:
# tar -tvf WP.zip drwxrwxrwx 0 0 0 0 May 7 04:45 wp-admin/ -rwxrwxrwx 0 0 0 0 May 7 02:03 wp-admin/about.php -rwxrwxrwx 0 0 0 0 Apr 13 00:29 wp-admin/admin-ajax.php [...]
Экстрагирование архивов (распаковка).
Распаковать архив каталогов, используя параметр «-v» с уровнем 1:
# tar xvf archive_name.tar.bz2
Распаковка файлов в указанный каталог:
# tar -xvf public_html.tar -C /home/captain/public_html/
Извлечь только файл PASSWD из архива archive_etc.tar.bz2:
# tar xvf archive_etc.tar.bz2 passwd
или
# tar --extract --file=archive_name.tar my_clean_files.sh
Извлечь только каталог postfix из архива archive_etc.tar.bz2:
# tar xvf archive_etc.tar.bz2 /etc/postfix/
Извлечь только файлы с розширением php из архива:
# tar -xvf php_archive.tar --wildcards '*.php'
или
# tar -zxvf my_archive.tar.gz --wildcards '*.php'
или
# tar -jxvf name_of_archive.tar.bz2 --wildcards '*.php'
Добавление в архив
Чтобы добавить файлы или каталоги в существующей tar архив файлы мы используем опцию r:
# tar -rvf linux-notes.tar test.txt
или
# tar -rvflinux-notes.tar.bz2 php
Проверка архива.
Для проверки содержимого архива, используйте опцию -W как показано в примере ниже:
# tar tvfW linux-notes.tar
Проверка размера архива файлов tar, tar.gz и tar.bz2
# tar -czf - test.tar | wc -c 5435436456
или
# tar -czf - test.tar.gz | wc -c 164564
или
# tar -czf - test.tar.bz2 | wc -c 8540
Определение различий (Diffing).
отличить архив от файловой системы
# tar df directory.tar.bz2
Для более детальной помощи, можно использовать:
$ tar --help
А на этом, статья «Использование tar в Unix/Linux» завершена.