Я хочу, чтобы каталог 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 рекурсивно?
  • При каких обстоятельствах gunzip & tar xf работает, но tar xzf терпит неудачу?
  • Зачем использовать superflous dash (-) для передачи флажков опций в tar?
  • Резервное копирование размонтированного устройства в файл tar
  • Может ли ncompress сжать файл до 99,99%?
  • tar: Неожиданный EOF в архиве
  • Извлечение tar.gz с расстояния
  • tar: короткое чтение
  • Список архивов Tar в сценарии bash
  • Установка переменной в каталог ~ / не расширяется
  • Сценарий Bash для автоматического резервного копирования tar выбранных файлов и каталогов
  • Linux и Unix - лучшая ОС в мире.