Eu quero tar o diretório X sem incluir seus pais

Eu quero tar o diretório X sem incluir seus pais
tar cvf /var/lib/backup/sample.tar /home/user/.project

Porém, quando eu extraio, recebo seus pais também

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

Este comando tar funciona porque não inclui mais nada em seus pais (outras pastas, userpor exemplo).

Quero fazer isso programaticamente, portanto, alterar o diretório de trabalho atual para /home/user/não é realmente uma opção. É possível fazer isso?

Responder1

Você pode usar a -Copção de mudar para o /home/userdiretório antes de tarar ou usar --strip-components 2na extração.

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

Responder2

Eu acho que se você cdacessar o diretório de nível superior do qual deseja criar taro arquivo, não deverá ter esse problema. Ou seja,

cdto usere tarup .project.. você pode especificar o destino do arquivo tar como /var/... antes.

Ou há uma razão pela qual você não quer/não cdpode user?

informação relacionada