语境 :
- btrfs 文件系统损坏(根树)后的 Debian 12 系统恢复试验,没有备份,但可以访问所有(?)文件。我在损坏后复制了系统,一切看起来都正确。我全新安装了 Debian 12。从这里,我
rsync
编辑了系统,除了/etc
. 对于最后一个,我rsync
只编辑了丢失的文件。 - 现在,我必须聪明地更新
/etc
。我想使用类似的工具meld
来让它变得更容易。但它不能作为 root 运行。所以我制作了旧版和新版的副本/etc
,并且chown -R user:user
都是从 LIVE DVD 中制作的。
当我的新版本etc
更新时,我想在替换整个/etc
新安装之前恢复文件/目录所有权。
这里的主题不是我的系统恢复,而是从具有相同文件和正确所有权的树副本恢复文件所有权。
ls -l
提供所有权但不提供完整路径。find
提供完整路径但不提供所有权。我最终找到了这个解决方案:
find previous_etc -exec sh -c 'chown -v --reference=$0 "new_etc${0#previous_etc}"' {} \;
所以,这是一个自我回答的问题。但如果你有其他方法,我很好奇。