如何在 NTFS-3G 上递归地将创建日期属性设置为修改日期属性?

如何在 NTFS-3G 上递归地将创建日期属性设置为修改日期属性?

在我的第一个问题中:如何获取 NTFS 逻辑卷上文件的创建日期,我问如何获取NTFS-3G中的“创建日期”字段。现在,我知道我可以获得“创建日期”,我已开始将文件添加到 NTFS-3G 分区上,并希望将每个文件的“创建日期”设置为其“修改日期”值。

由于这需要在整个文件存储库上完成,因此我想将其递归地应用到单个目录上。如果我知道如何对单个文件执行此操作,我可能可以自己进行递归,但如果您想添加它,我会非常高兴。

答案1

扩展属性system.ntfs_times包含 32 个字节,由 64 位整数的 btime、mtime、atime、ctime 组成。

例如,您可以列出它们:

getfattr --only-values -n system.ntfs_times -- "$file" |
  perl -MPOSIX -0777 -ne 'print ctime $_/10000000-11644473600 for unpack("Q4",$_)'

因此,您可以将第二个整数复制到第一个整数,如下所示:

getfattr -n system.ntfs_times -e hex -- "$file" |
  sed '2s/0x.\{16\}\(.\{16\}\)/0x\1\1/' |
  setfattr --restore=-

相关内容