Intereting Posts
Автоматизация подключения к VPN Отключить ctrl c и ctrl z во время запуска скрипта вызов sigprocmask из bash Разрыв жесткой связи на месте? Как изменить программы, используемые для обработки файлов в Caliber в Debian Какая разница между ключом openssh и ключом шпатлевки? Переконфигурируйте сетевой менеджер в Kali Linux после установки openvpn или vpn-unlimited Не удалось установить проприетарный драйвер Nvidia после последнего обновления Kali Ограничить доступ на внешний накопитель, установленный и используемый sftp Может ли `btrfs scrub` помнить плохие блоки / секторы? Почему эта последовательность ключей, использующая SyRq, не работает Чтение домашней папки старого компьютера на новом компьютере Консоль не отключится на PowerPC с Debian Основные команды в Unix не работают: -bash: ls: Нет такого файла или каталога Почему «dir-or-file-in-usr-local» является ошибкой, а не предупреждением?

Значок Tar -absolute-names не работает

Я хотел бы поместить все в архив из заданного каталога, а также сохранить весь dierctory макет, поэтому потребуются наивысшие имена каталогов.

Я запускаю следующую команду:

tar --create --gzip --recursion --file=/home/user/test_backup.tgz --directory=/home/user/opt .

Однако это только экономит макет каталога с помощью opt .

 dir1 dir1/file file1 file2 

Как я понимаю из руководства, я должен использовать --absolute-names или -P , но ни один из них не работает, когда я добавляю их в команду выше.

tar --absolute-names --create --gzip --recursion --file=/home/user/test_backup.tgz --directory=/home/user/opt .

В чем может быть проблема?

Желаемый каталог в архиве должен быть:

 /home/user/opt/dir1 /home/user/opt/dir1/file /home/user/opt/file1 /home/user/opt/file2 

Когда вы используете --directory FOO . вы говорите, что tar должен перейти в каталог FOO и начать архивирование оттуда.

Если вам нужны полные имена путей, вы должны указать их как шаблон.

например

 tar -czf /home/user/test_backup.tgz /home/user/opt 

Однако это приведет к отключению ведущего / символа, поэтому вам нужно сказать, чтобы tar не делал этого:

 tar --absolute-names -czf /home/user/test_backup.tgz /home/user/opt 
 $ tar -P -cvzf archive.tgz /path/to/dir 

Это создаст архив, содержащий содержимое /path/to/dir с полным путем, начиная с /path/to/dir .

Вам также придется использовать -P при извлечении файлов из архива, если вы хотите, чтобы ведущие / в пути сохранялись.