Metody płatności Abuse

Jak wyświetlić datę utworzenia pliku w systemie Linux

22.04.2022, 18:05

W systemie Linux właściwości pliku w menedżerze plików pokazują tylko informacje o dacie ostatniego dostępu do pliku i dacie modyfikacji. Ale data utworzenia nie jest tam wyświetlana. Czasami trzeba na nią spojrzeć, na przykład, aby dowiedzieć się, kiedy rejestr jest nagrywany. W tej instrukcji powiemy ci, jak zobaczyć, jakie dane są przechowywane w systemach plików Linux i wyjaśnimy, jak znaleźć datę utworzenia pliku Linux. Wspomnimy od razu o dwóch wygodnych sposobach, z których każdy ma swoją własną specyfikę.

Data utworzenia pliku

Standard POSIX określa tylko 3 rodzaje znaczników czasu, które system plików musi przechowywać:

  • atime - czas ostatniego dostępu do pliku.
  • mtime - czas ostatniej modyfikacji zawartości.
  • ctime - czas ostatniej modyfikacji praw dostępu lub właściciela.

Dlatego w starych systemach plików często niemożliwe jest wyświetlenie informacji o dacie utworzenia pliku. Ale w nowoczesnych systemach plików (ext4, zfs, XFS i tak dalej) jest ona już przechowywana.

Dane o dacie utworzenia są zapisywane w specjalnym polu:

  • Ext4 - crtime
  • ZFS - crtime
  • XFS - crtime
  • Btrfs - otime
  • JFS - di_otime

Istnieją dwie metody wyświetlania tych informacji: stat i debugfs. Jednak pierwsza metoda nie jest odpowiednia dla użytkowników każdej dystrybucji Linuksa. Druga metoda jest uniwersalna, ale nie tak łatwa w użyciu. Zajmijmy się każdą z nich osobno.

Używanie Stat

Narzędzie stat wyświetla szczegółowe informacje o pliku. Między innymi wyświetla datę utworzenia pliku Linux. Aby uruchomić je w terminalu, wystarczy podać ścieżkę do pliku. Na przykład, spójrzmy na informacje o obrazie pic_1.jpeg przechowywanym w katalogu /home/root-user/Pictures:

$ stat /home/root-user/Pictures/pic_1.jpeg

Niezbędne informacje są zapisywane w kolumnie Created. Za pomocą opcji -c można ustawić pewne reguły formatowania informacji wyjściowych, na przykład pozostawiając tylko niezbędną kolumnę:

$ stat -c '%w' /home/root-user/Pictures/pic_1.jpeg

Jak wyświetlić datę utworzenia pliku w systemie Linux

Jest jednak jedna mała trudność. W niektórych dystrybucjach Linuksa pole to będzie puste podczas korzystania z narzędzia stat.

Jak wyświetlić datę utworzenia pliku w systemie Linux

Głównym powodem jest to, że dane wyjściowe są wyświetlane w statx(2). Powłoka została dodana do biblioteki glibc w wersji 2.28. Oznacza to, że obsługa tej powłoki pojawiła się w zestawie podstawowych narzędzi systemowych GNU coreutils 8.31. Aby sprawdzić wersję, uruchom to polecenie:

$ stat --version

Jak wyświetlić datę utworzenia pliku w systemie Linux

W związku z tym stat będzie w stanie wyświetlić dane dotyczące tworzenia plików tylko wtedy, gdy wystąpią określone warunki opisane powyżej. Na przykład w dystrybucji Ubuntu 21.10 wszystko działa bez żadnych problemów, ale w Ubuntu 20.04 pole będzie puste.

Używanie DebugFS

Narzędzie DebugFS nie ma ograniczeń dotyczących wersji. Będzie działać zawsze. Jednak procedura jego użycia jest nieco bardziej skomplikowana. Wynika to z faktu, że aby wyświetlić datę utworzenia pliku za pomocą debugfs, musisz znać jego numer inode i system plików. Aby uzyskać inode, użyj polecenia ls z opcją -i, określając ścieżkę do pliku:

$ ls -i /home/root-user/scripts/main_script.txt

Jak wyświetlić datę utworzenia pliku w systemie Linux

Aby wyświetlić system plików, przyda się polecenie df:

$ df /home/root-user/scripts/main_script.txt

Jak wyświetlić datę utworzenia pliku w systemie Linux

Teraz masz wszystkie niezbędne dane i możesz przejść do narzędzia debugfs. Musisz przekazać do niego opcję -R, określić numer inode, a następnie nazwę systemu plików:

$ sudo debugfs -R 'stat <28>' /dev/sda5

Jak wyświetlić datę utworzenia pliku w systemie Linux

Następnie będziesz mógł znaleźć w terminalu pole, w którym przechowywana jest data utworzenia. W naszym przypadku jest to crtime.

Na tym kończą się instrukcje.