GNU/Linux >> Belajar Linux >  >> Linux

Linux – Bagaimana Cara Mendapatkan Tanggal Pembuatan File Pada Volume Logika Ntfs?

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)"

Linux
  1. Bagaimana cara mengarahkan output dari system() ke file?

  2. Bagaimana cara mendapatkan path ke file saat ini (pwd) di Linux dari C?

  3. Dapatkan Tanggal Modifikasi File Terakhir di Linux

  1. Cara membuat sistem file pada partisi Linux atau volume logis

  2. Linux – Bagaimana Menemukan Tanggal Pembuatan File?

  3. Bagaimana cara mendapatkan ukuran fisik file di Linux?

  1. Bagaimana mengubah identitas sistem Linux

  2. Linux:Bagaimana Mendapatkan Semua Log Masuk Dari Sistem?

  3. Linux – Bagaimana Cara Menampilkan Sar Untuk Hari Sebelumnya?