Но, зачастую справка слишком лаконична и не всегда понятны те или иные ньюансы использования опций требуемой команды.
Именно это и является причиной написания данной шпаргалки.
Сегодня я рассмотрю частный (и частый) случай, когда необходимо создать инкрементный архив файлов из заданной директории.
Допустим, у нас имеется директория /home/user/public_html/media, в которой файлы часто обновляются и добавляются новые.
Данная директория содержит некоторое количество поддиректорий, среди которых присутствует директория с кешируемыми копиями файлов, которую нет необходимости добавлять в архив.
1. Использование ключа -N
Данный ключ добавит в существующий архив только те файлы, которые новее существующих в нем, а также удалит из архива файлы старше указанной даты.# tar -N 'YYYY-MM-DD HH:MM:SS' -zcvf archive.tar.gz media/catalog/
Таким образом, архив archive.tar.gz каждый раз будет очищаться от старого содержимого, которое будет замещаться более свежим, начиная с указанной даты и времени.
Кстати, если время не существенно, его можно не указывать.
2. Использование ключа -u
Этот ключ обновляет существующий архив не удаляя существующие в нем файлы, а лишь добавляя в него более новые.# tar -zuvf archive.tar.gz media/catalog/
3. исключение файлов и директорий
# tar -N 'YYYY-MM-DD HH:MM:SS' --exclude=file1 --exclude=pattern* --exclude=media/catalog/cache/* -zcvf archive.tar.gz media/catalog/
Опция --exclude может быть использована для исключения как единичных файлов, так и целых директорий, либо отдельных файлов соответствующих указанному паттерну.
Примечание: если требуется указать несколько различных исключений, все они перечисляются каждый раз используя опцию --exclude. Т.е. в одной опции нельзя перечислить несколько исключений сразу.
Если список исключений достаточно длинный, имеет смысл использовать другую опцию --exclude-from=file. Где file - это обычный текстовой файл со списоком исключений, где каждое исключение указывается на новой строке.
Например:
# tar -N 'YYYY-MM-DD HH:MM:SS' --exclude-from=excludes.list -zcvf archive.tar.gz media/catalog/
Комментариев нет :
Отправить комментарий