Untuk waktu yang lama, Linux tidak peduli dengan tanggal pembuatan file karena tidak ada sistem file yang biasa digunakan mendukungnya. Namun sekarang, 2 sistem file yang umum digunakan (NTFS dan ext4) merekam tanggal pembuatan file.
The stat
perintah, bagaimanapun, masih output Birth: -
pada sistem file ext4, meskipun kita dapat melihat bahwa ext4 telah disimpan file ini membuat tanggal dengan menggunakan debugfs -R 'stat <inode_number>' /dev/file_device
.
Ketika saya melihat mengapa hal ini terjadi, saya melihat bahwa orang lain baru-baru ini mengajukan laporan bug tentang hal itu, dan tanggapannya menghubungkan ke masalah hulu yang hanya menyatakan "tidak ada antarmuka kernel Linux saat ini untuk mendapatkan info [file tersebut] tanggal pembuatan] ". Tampaknya luar biasa bagi saya bahwa ini tampaknya masih terjadi, karena orang telah meminta untuk stat
menampilkan informasi ini selama bertahun-tahun (dan stat
apakah menampilkan Birth
bidang, meskipun itu tampaknya belum mendukungnya! Apakah mereka menambahkannya sebagai antisipasi?)
Jadi apakah masih benar bahwa tidak ada antarmuka kernel Linux saat ini untuk mendapatkan tanggal pembuatan file? Apakah pernah ada rencana untuk mengimplementasikan ini?
sumber
debugfs
.ZFS
juga merekam waktu pembuatan file dan memungkinkannya untuk diambil melalui atribut yang diperluas.Jawaban:
EDIT: Kabar baik,
statx()
telah digabungkan sehingga harus tersedia dalam rilis 4.11.Pekerjaan xstat (), saat ini statx (), direvisi pada tahun 2016.
Prosesnya sedikit lebih disiplin kali ini (kurang bikeshedding, kesepakatan untuk menghilangkan atribut kontroversial karena mereka selalu dapat ditambahkan kemudian). Sayangnya masih ada keberatan dengan antarmuka yang tepat dan saya belum melihat referensi yang lebih baru.
sumber
Dari apa yang dapat saya katakan (maaf banyak tautan, memori, dan googlage, tidak ada yang cukup kohesif untuk dicantumkan di sini sebagai referensi), itu tidak pernah terjadi karena sistem garis bawah tidak mendukung atribut waktu pembuatan, tetapi karena tidak satupun dari mereka bahkan dapat setuju bahwa itu adalah fitur yang bermanfaat.
Lihat http://www.pathname.com/fhs/pub/fhs-2.3.html
POSIX menjabarkan tiga prangko waktu. Tak satu pun dari mereka adalah waktu pembuatan.
Jika saya ingat dengan benar, argumennya seperti:
Sekarang banyak dari ini adalah memori dan membaca beberapa milis lama. Aku juga tidak terlalu menyukai argumen. Saya berada di milis karena beberapa pekerjaan off-shoot di driver gemuk untuk sistem Linux tertanam. Saya menyebutkan bahwa karena pasti ada sumber yang lebih otoritatif maka ingatan saya tentang sesuatu yang hanya saya pedulikan.
Saya ingat masalah besar adalah kombinasi dari fakta bahwa tidak ada yang bisa datang dengan kasus penggunaan yang baik, tidak ada yang bisa sepakat tentang bagaimana menangani bidang untuk 40 sistem file yang biasa digunakan lainnya yang tidak mendukung waktu pembuatan, dan bahkan muncul dengan nama untuk lapangan berubah menjadi perdebatan besar.
sumber
debugfs
membaca bidang dari disk image tidak banyak antarmuka , dan itu akan memerlukan akses istimewa.Waktu kelahiran dalam beberapa sistem file asli Linux, tidak hanya ext4.
Sejak versi 4.11 dari kernel Linux (April 2017), ada
statx()
panggilan sistem baru untuk mengambilnya. Namun, fungsi pembungkus yang sesuai belum ditambahkan ke GNU libc belum (sebagai dari 2018/06/26. 2019 mengedit sekarang ditambahkan di 2,28), dan alat-alat seperti GNUstat
,ls
,find
belum diperbarui untuk menggunakannya ( 2019-08- 22 edit GNUstat
pada sistem GNU / Linux dengan glibc 2.28 atau lebih tinggi mendukungnya sejak coreutils 8.31)Anda bisa melakukannya
perl
dengan sesuatu seperti:Jika Anda
syscall.ph
tidak memilikinyaSYS_statx
, Anda dapat meng-hardcode-nya juga. Ini 332 pada arsitektur amd64. Atau coba:Sekarang waktu kelahiran jarang berguna. Ini bukan usia data dalam file (data ditulis ke file setelah mereka dibuat), juga tidak perlu waktu file muncul dengan nama itu di direktori (itu bisa dibuat sebagai nama yang berbeda dan diganti nama atau ditautkan di sana dan konten atau atribut telah diubah beberapa kali di antaranya).
sumber
NFSv4
ia perlu mendukung atribut yang diperluas dan ada kemungkinan entricrtime
dalam atribut yang diperluas. Periksa misalnyals.c
sumber Solaris yang mencetak waktu pembuatan filels -l -% crtime
.statx()
. Tidak ada utilitas standar yang antarmuka untukstatx()
di Linux, tetapi mengambil atribut yang diperluas telah didukung selama beberapa dekade. Lihat Bagaimana cara mendapatkan tanggal pembuatan file pada volume logis NTFS?openat(fd, ".", O_RDONLY|O_XATTR)
.