Saya membuat volume logis NTFS pada sistem Linux saya untuk penyimpanan file Windows karena saya ingin mempertahankan tanggal pembuatan file saya (saya mungkin akan memasukkannya ke dalam arsip dan kemudian membuka ritsletingnya, meskipun saya tidak tahu apakah itu akan berhasil). Apakah NTFS-3G menyimpan tanggal pembuatan file di Linux? Jika demikian, bagaimana cara mengaksesnya?
Membaca utas ini, OP menautkan dokumentasi di NTFS yang menyediakan skrip shell untuk menemukan tanggal pembuatan. Saya memodifikasinya dalam upaya untuk mendapatkan detik dari nilai hex, tetapi saya yakin bahwa saya melakukan sesuatu yang salah:
#!/bin/sh
CRTIME=`getfattr -h -e hex -n system.ntfs_times $1 |
grep '=' | sed -e 's/^.*=(0x................).*$/1/'`
SECONDS=$(($CRTIME / 10000000))
echo `date --date=$SECONDS`
Jawaban yang Diterima:
Dari https://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/#filetimes,
File NTFS dikualifikasikan oleh satu set empat stempel waktu "mewakili jumlah interval 100 nanodetik sejak 1 Januari 1601 (UTC)", meskipun UTC belum ditentukan selama bertahun-tahun sebelum 1961 karena variasi rotasi bumi yang tidak diketahui.
Anda akan menemukan lebih banyak informasi di sana termasuk:
Versi ntfs-3g yang lebih baru memperlihatkan ntfs.ntfs_crtime
dan ntfs.ntfs_crtime_be
atribut.
Jadi:
getfattr --only-values -n system.ntfs_crtime_be /some/file |
perl -MPOSIX -0777 -ne '$t = unpack("Q>");
print ctime $t/10000000-11644473600'
ntfsinfo -F /file/in/ntfs /dev/fs-device
Dengan ntfs-3g yang lebih lama, ini akan berfungsi:
getfattr --only-values -n system.ntfs_times /some/file |
perl -MPOSIX -0777 -ne 'print ctime unpack(Q)/10000000-11644473600'
Atau dengan alat GNU dan presisi sub-detik:
date '+%F %T.%N' -d "@$({ echo 7k
getfattr --only-values -n system.ntfs_times /some/file |
od -A n -N 8 -vt u8; echo '10000000/ 11644473600-p'; } |dc)"