Contexto:
- Teste de recuperação do sistema Debian 12 após uma corrupção do sistema de arquivos btrfs (árvore de raízes) sem backup, mas acesso a todos (?) Os arquivos. Fiz uma cópia do sistema após a corrupção, parece tudo certo. Fiz uma nova instalação do Debian 12. A partir daqui, editei
rsync
o sistema, exceto/etc
. Para este último, editeirsync
apenas os arquivos ausentes. - Agora, tenho que atualizar de forma inteligente
/etc
. Quero usar ferramentasmeld
para tornar isso mais fácil. Mas não funciona como root. Então fiz cópias do anterior e do novo/etc
echown -R user:user
ambos de um DVD AO VIVO.
Quando meu novo etc
for atualizado, desejo restaurar a propriedade de arquivos/diretórios antes de substituir toda /etc
a nova instalação.
O assunto aqui não é a restauração do meu sistema, mas a restauração da propriedade de arquivos a partir de uma cópia da árvore que possui os mesmos arquivos e direitos de propriedade.
ls -l
fornece propriedade, mas não caminhos completos. find
fornece caminhos completos, mas não propriedade. Acabei encontrando esta solução:
find previous_etc -exec sh -c 'chown -v --reference=$0 "new_etc${0#previous_etc}"' {} \;
Então, esta é uma pergunta auto-respondida. Mas se você tiver outros métodos, estou curioso.