我如何复制递归目录,仅复制属性为 1 的文件,并将其属性重置为 0?

我如何复制递归目录,仅复制属性为 1 的文件,并将其属性重置为 0?

我如何复制递归目录中仅具有属性 1 的文件,并将该属性重置为 0?谢谢,Francisco

答案1

attr如果您想设置和获取扩展属性,您可能必须安装该包。

您可以用 shell 语言或更高级的语言编写脚本来进入目录并检查每个文件,复制符合条件的文件。我个人会使用 python。

通过使用 getfattr 命令,您可以检索用户的值。姓名您将自己定义为扩展属性。复制文件后,您可以通过执行 setfattr 命令来设置不同的值。

我没有看到 rsync 或 dump 有这个选项。据说 dump 会忽略带有d(非扩展)属性集。这些常规属性用 来设置chattr,属性用 来检查lsattr。这些命令还包括设置文件的版本,以防万一 可以用作您询问的位设置/清除的替代。我想您可以根据需要让版本在 0 和 1 之间交替。请参阅man chattrman lsattr,特别是 -v 选项。

dump命令似乎使用其自己的文件(/var/lib/dumpdates)来跟踪已备份的内容,以便可以增量备份,这可能是您要做的事情。

如果存在其他不涉及编程的方法,那么进一步了解您要实现的目标可能会有所帮助。

相关内容