Jakie systemy plików w systemie Linux przechowują czas utworzenia?

32

Czy istnieją jakieś (dobrze znane, niezawodne) systemy plików w systemie Linux, które przechowują czas tworzenia plików i katalogów w tabeli i-node?

Jeśli tak, to czy czas „zmieniony” jest zastępowany czasem utworzenia i-węzła w wywołaniu statystyki?

franziskus
źródło
1
Zobacz także Jak zrobić ls, a następnie posortować wyniki według daty utworzenia?
Gilles 'SO - przestań być zły'
Tam nie wydaje się być sposób, aby uzyskać czas tworzenia plików w Linuksie, jeśli plik znajduje się na systemie plików ext4. Zobacz: unix.stackexchange.com/a/131347/182996
kaartic

Odpowiedzi:

16

System plików ext4 przechowuje czas utworzenia. stat -c %W myfilemogę ci to pokazać.

Keith
źródło
6
Dzięki. W moim systemie stat -c %Wzwraca 0 (czas utworzenia nieznany), ale to kolejne pytanie ...
franziskus
1
Należy jednak pamiętać, że ze względu na sposób obsługi plików przez wiele programów ta wartość czasu tworzenia może nie być przydatna .
mattdm
15
@ Legat: jeśli edytor tekstu działa, kopiując plik do tymczasowej lokalizacji, edytując tymczasową kopię roboczą, a następnie przenosząc tymczasową kopię nad oryginałem podczas zapisywania, kiedy jest czas utworzenia?
mattdm,
1
Czy trzeba to jakoś włączyć? Próbowałem uzyskać crtime dla pliku w systemie plików ext4 i otrzymałem zero. Po wcześniejszym przeczytaniu tego postu na blogu również próbowałem użyć debugfsi statujawniłem, że nie ma crtime. Zastanawiam się więc, czy trzeba to jakoś włączyć? (FWIW używam Arch Linux )
starfry
2
Tam nie wydaje się być sposób, aby uzyskać czas tworzenia plików w systemie Linux. Zobacz: unix.stackexchange.com/a/131347/182996
kaartic
30

Kilka systemów plików przechowuje czas utworzenia pliku, chociaż nie ma standardowej nazwy dla tego pola:

  • ufs2 → st_birthtime
  • zfs → crtime
  • ext4 → crtime
  • btrfs → otime
  • jfs → di_otime
jlliagre
źródło
5
Mówiąc wprost, na dzień 2015-03 XFS nie obsługuje (patrz strona xfs_dbpodręcznika lub w strukturze systemu plików XFS
Franklin Piat,
4

O ile wiem ext4, systemy plików JFS i BTRFS obsługują dodatkowe pole w i-węzle plików do przechowywania czasu tworzenia, chociaż nazwy mogą się różnić.

Źródło: LWN File Creation Times

Huygens
źródło
//, Czy byłeś w stanie to zweryfikować? AFAIK jest przynajmniej trochę słabe, jak na mój gust.
Nathan Basanese
5
@NathanBasanese AFAIK zgłaszał się do JFS i BTRFS. W przypadku ext4 tak, obsługuje to. Sprawdź debugfsstatystyki komend. Przykład: musisz sprawdzić urządzenie, na którym jest zamontowany system plików ext4 (np. / Dev / sda3) i musisz uzyskać numer i-węzła pliku w tym systemie plików (użyj ls -i, powiedzmy, że 42000 to liczba), a następnie po prostu wpisz: debugfs -R 'stat <42000>' /dev/sda3. Uruchom jako root lub z wystarczającymi uprawnieniami. Poszukaj crtimepola, to jest to. W przypadku JFS i BTRFS należy znaleźć równoważne polecenie debugfs ...
Huygens,
//, NIIICE. Próbowałem $ ls -i | grep dump.rdb 656376 dump.rdb i $ sudo debugfs -R 'stat <656376>' / dev / sda2, ale myślę, że jeszcze nie mam tam ext4. Jeśli spróbuję na ext4, powiem tak.
Nathan Basanese
@NathanBasanese Możesz zrobić, df -Taby uzyskać typ partycji lub po prostu wpisać mount. Upewnij się, że i-węzeł pliku należy do właściwej partycji. I-węzły są (z natury) specyficzne dla partycji.
Huygens