Digamos que eu tenha a seguinte estrutura de diretório em algum lugar no meu sistema de arquivos:
a/ dir; alice:work; default dir rights
b/ dir; alice:work; default dir rights
test.sh script; alice:work; executable
Em seguida, eu crio um arquivo dessa estrutura de diretórios como bob e listo apenas test.sh como o arquivo que quero adicionar ao arquivo:
sudo tar cjf backup.tar.bz2 a/b/test.sh
Agora eu tenho um arquivo backup.tar.bz2 que deveria ter mantido as propriedades & direitos do arquivo que eu especifiquei no comando (e também espero o mesmo para os diretórios pai a & b!).
Agora, aqui está minha situação. Se eu, ainda bob, tentar extrair o conteúdo do arquivo em um local diferente no meu sistema de arquivos como um teste, esperaria obter a mesma estrutura de arquivos com as mesmas propriedades & direitos como quando eu criei o arquivo com. No entanto, ao usar o seguinte comando
sudo tar xjf backup.tar.bz2
Eu obtenho a seguinte estrutura de arquivos:
a/ dir; root:root; default dir rights
b/ dir; root:root; default dir rights
test.sh script; alice:work; executable
De alguma forma, a propriedade dos diretórios pai não é mantida ao extrair do arquivo. Parece que ele dá a propriedade desses diretórios a qualquer usuário que tenha extraído o arquivo (no meu caso, raiz, como eu quero preservar a propriedade e os direitos).
Existe uma maneira de dizer ao tar para manter a propriedade dos diretórios pai também? Eu sei que é possível incluí-los no comando tar que cria o arquivo:
sudo tar cjf backup.tar.bz2 a/ a/b/ a/b/test.sh
Mas eu prefiro não fazer isso no caso de existirem outros arquivos ou diretórios em um / a / b / como então eles também farão parte do arquivo.