Для создания архива директории по пути /data/dir-backup без сжатия с исключением файлов:
tar --exclude='upload' --exclude='bitrix/modules/imopenlines.log' -cvf data.tar /data/dir-backup
Особое внимание нужно уделить параметру exclude:
- В разных версиях его нужно добавлять где-то сразу после tar, где-то в самом конце. У меня сработало на CentOS 7 так, как в примере выше.
- В конце директорий не ставить / , иначе исключение не сработает.
Распаковка содержимого архива без абсолютного пути
tar -xvf /root/data.tar --strip 2 -C /home/bitrix/data
Распаковывает всё, кроме родительской директории. Например, у нас содержимое архива такое:
/data/dir-backup/file1
/data/dir-backup/file2
/data/dir-backup/data2/file2
И вышеописанная команда распакует только:
file1
file2
data2/file2
strip 2 определяет уровень вложенности путей и отсекает их (в данном случае /data/dir-backup/
Также можно поступить иначе. Используя ключ C, создается архив:
tar -czvf /home/rmn/test.tar -C /home/rmn/ archive_content_folder
Тут указано, что нужно создать архив с файлами внутри директории archive_content_folder относительно пути /home/rmn/
А при распаковке просто указать:
tar -xvf /home/rmn/test.tar -C /home/rmn/<source dir>
В итоге получим также правильные пути вида:
file1
file2
data2/file2