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, user
por 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 -C
opção de mudar para o /home/user
diretório antes de tarar ou usar --strip-components 2
na 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ê cd
acessar o diretório de nível superior do qual deseja criar tar
o arquivo, não deverá ter esse problema. Ou seja,
cd
to user
e tar
up .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 cd
pode user
?