NTFS-3Gで生成日付属性を修正日付属性に再帰的に設定するには?

NTFS-3Gで生成日付属性を修正日付属性に再帰的に設定するには?

私の最初の質問から:NTFS論理ボリュームからファイル作成日を取得する方法、NTFS-3Gから「Creation Date」フィールドを取得する方法を尋ねました。 「生成日」を取得できることがわかったので、NTFS-3Gパーティションにファイルを追加し始め、各ファイルの「生成日」を「修正日」の値に設定しようとしています。

これはファイルストア全体で行う必要があるため、個々のディレクトリに繰り返し適用したいと思います。単一のファイルに対してこれを行う方法を知っている場合は、おそらく直接再帰を実行できます。しかし、追加したい場合はとても嬉しいです。

ベストアンサー1

拡張属性system.ntfs_timesには、64ビット整数btime、mtime、atime、およびctimeで構成される32バイトが含まれます。

たとえば、次のようにリストできます。

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

したがって、次のように、2番目の整数を最初の整数にコピーできます。

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

おすすめ記事