Маленькая шпаргалка по tar

Последнее обновление 09.03.2019

Для создания архива директории по пути /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


Обсуждение закрыто.