Я хочу, чтобы каталог tar X не включал его родителей

tar cvf /var/lib/backup/sample.tar /home/user/.project 

Однако, когда я извлекаю, я получаю его родителей также

 /backup/ - /home/ - /user/ - .project/ 

Эти tar-команды выполняют эту работу, потому что в родителях он не содержит ничего другого (например, другие папки под user ).

Я хочу сделать это программно, поэтому изменение текущего рабочего каталога в /home/user/ самом деле не является вариантом. Можно ли это сделать?

2 Solutions collect form web for “Я хочу, чтобы каталог tar X не включал его родителей”

Вы можете либо использовать опцию -C для изменения в каталоге /home/user прежде чем использовать --strip-components 2 или использовать --strip-components 2 при извлечении.

 tar cvfC /var/lib/backup/sample.tar /home/user .project # Note the space ^ 
 tar cvf /var/lib/backup/sample.tar /home/user/.project tar Cxf /backup /var/lib/backup/sample.tar --strip-components 2 

Я думаю, что если вы cd к каталогу toplevel, который вы хотите создать tar файл, у вас не должно быть этой проблемы. То есть,

cd для user и tar up .project .. вы можете указать место назначения для файла tar в файле /var/... как и раньше.

Или есть причина, по которой вы не хотите / не можете использовать cd для user ?

  • Извлечение нескольких файлов из tar на удаленный хост
  • Скопируйте каталог на внешний жесткий диск
  • Скрипты многотомных (GNU) `tar` с заранее определенным количеством томов
  • XZ - невозможно выделить память
  • Изменить идентификатор пользователя и идентификатор группы файлов в архиве?
  • Есть ли способ создать несколько файлов tar в каталоге (Linux / Unix)?
  • Как восстановить файл tar, где stderr был смешан с stdout?
  • установить уровень сжатия с помощью nice и tar
  • Обновление tar.gz ежедневно только с измененными файлами
  • Почему моя смола не работает?
  • Будет ли tar -cvzf packed.tar.gz mydir учитывать скрытые файлы?
  • Linux и Unix - лучшая ОС в мире.