Linux'ta hangi dosya sistemleri oluşturma süresini depolar?


32

Linux'ta i-node tablosundaki dosyaların ve dizinlerin oluşturulma zamanını depolayan herhangi bir (iyi bilinen, güvenilir) dosya sistemi var mı?

Varsa, stat çağrısında i-node'un yaratma zamanı ile değiştirilen "değiştirilmiş" zaman mı?



Dosya ext4 dosya sisteminde ise, Linux'ta dosya oluşturma zamanını elde etmenin bir yolu var gibi görünüyor. Bakınız: unix.stackexchange.com/a/131347/182996
kaartic

Yanıtlar:


16

Ext4 dosya sistemi oluşturma zamanı saklamak yok. stat -c %W myfilesana gösterebilirim.


6
Teşekkürler. Sistemimde stat -c %W0 döndürüyor (oluşturma zamanı bilinmiyor), ancak bu başka bir soru ...
franziskus

1
Ancak, dosyaların birçok program tarafından nasıl işlendiğine bağlı olarak, bu oluşturma süresi değerinin yararlı olmayabileceğini unutmayın .
mattdm

15
@ Bir metin: bir metin editörü dosyayı geçici bir yere kopyalayarak, geçici çalışma kopyasını düzenleyerek ve ardından geçici kopyayı kaydetme sırasında orijinal belgeye kaydeterek çalışıyorsa, oluşturma süresi ne zamandır?
mattdm

1
Bunun bir şekilde etkinleştirilmesi gerekiyor mu? Bir ext4 dosya sistemindeki bir dosyanın crtime'ini almaya çalıştım ve sıfıra aldım. Daha önce bu blog gönderisini okuduktan sonra , kullanmayı da denedim debugfsve stathangisinin olmadığını açıkladım crtime. Yani bir şekilde etkinleştirilmesinin gerekli olup olmadığını merak ediyorum? (FWIW Ben Arch Linux kullanıyorum )
starfry

2
Linux'ta dosya oluşturma zamanını elde etmenin bir yolu var gibi görünüyor. Bakınız: unix.stackexchange.com/a/131347/182996
kaartic

30

Birkaç dosya sistemi, bu alan için standart bir isim olmamasına rağmen, dosya oluşturma zamanını saklar:

  • ufs2 → st_birthtime
  • zfs → crtime
  • ext4 → crtime
  • btrfs → otime
  • jfs → di_otime

5
Açık olmak gerekirse, 2015-03 itibariyle, XFS desteklememektedir (bkz. Manpage xfs_dbveya XFS Dosya Sistemi Yapısı).
Franklin Piat

4

Ext4'ü bildiğim kadarıyla, JFS ve BTRFS dosya sistemlerinin tümü, oluşturma zamanını depolamak için inode dosyalarında fazladan bir alanı destekler, ancak adlandırma farklı olabilir.

Kaynak: LWN Dosya Oluşturma Süreleri


//, bunu doğrulayabildin mi? AFAIK en azından benim zevkime göre biraz zayıf.
Nathan Basanese,

5
@NathanBasanese AFAIK, JFS ve BTRFS'ye rapor veriyordu. Ext4 için evet onu destekliyor. debugfsKomut statünü kontrol et . Örnek: ext4 dosya sisteminin monte edildiği bir cihaza ihtiyacınız var (örneğin / dev / sda3) ve bu dosya sistemi içinde bir dosya inode numarası almanız gerekir (kullanın ls -i, 42000'in sayı olduğunu söyleyin). debugfs -R 'stat <42000>' /dev/sda3. Bunu root olarak veya yeterli bir ayrıcalıkla çalıştırın. Tarlaya bak crtime, işte o. JFS ve BTRFS için, eşdeğer debugfs komutunu bulmanız gerekir ...
Huygens,

//, NIIICE. Ben $ ls -i denedim | grep dump.rdb 656376 dump.rdb ve $ sudo debugfs -R 'stat <656376>' / dev / sda2, ama sanırım henüz ext4 yok. Bir ext4 üzerinde denersem, söyleyeceğim.
Nathan Basanese,

@NathanBasanese df -TBölüm türünü almak için veya basitçe yazabilirsiniz mount. İnode dosyasının doğru bölüme ait olduğundan emin olun. İnode'lar (tabiatlarına göre) bir bölüme özgüdür.
Huygens
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.