Mas*_*imo 5 filesystems archive
我想知道在 linux 文件系统中是否有支持每个文件的存档位
https://en.m.wikipedia.org/wiki/Archive_bit
我需要在本机 fs 中具有相同逻辑的东西,例如 ext3,既不胖也不 ntfs。
Gil*_*il' 12
Linux 没有完全等效的 DOS/Windows 存档位,但您可以制作类似的东西。现代 Linux 系统支持自定义文件属性,至少在 ext4 和 btrfs 上。您可以使用getfattr
来列出它们并setfattr
设置它们。自定义属性是用户命名空间中的扩展属性,即名称以五个字符开头的名称user.
。
$ touch foo
$ getfattr foo
$ setfattr -n user.archive -v "$(date +%s -r foo)" foo
$ getfattr -d foo
# file: foo
user.archive="1471478895"
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以使用自定义属性。该值可以是任何短字符串(可用存储量取决于文件系统和内核版本;几百字节应该没问题)。在这里,我使用文件的时间戳;修改将更新实际时间戳,但不会更新自定义属性中的副本。
请注意,如果通过删除文件并将其替换为新版本来修改文件,而不是覆盖现有文件,则自定义属性将消失。这应该可以满足您的目的:如果该属性不存在,则应备份该文件。
Unix 世界中的增量备份程序不使用自定义属性。他们所做的是将文件的时间戳与备份的时间戳进行比较,并在文件发生更改时进行备份。这更可靠,因为它考虑了备份的实际状态——仅根据系统状态进行的备份更容易由于备份消失或维护属性时出错而丢失文件。