Czy w systemie Linux jest polecenie sprawdzające wszystkie znaczniki czasu pliku?
Próbuję zobaczyć ostatnio zmodyfikowane, utworzone i dotknięte daty w pliku.
linux
timestamp
date-modified
Mechaflash
źródło
źródło
struct stat
bez zepsucia, niestety ...) Możesz wypróbowaćdebugfs -R "stat <1234>" /dev/sdXY
ext4, zastępując1234
ino.stat
polecenia Linux , patrz Jak znaleźć datę utworzenia pliku? i Jakie systemy plików w systemie Linux przechowują czas utworzenia? .Odpowiedzi:
Komenda nazywa się
stat
.Jeśli chcesz dostosować format, zapoznaj się ze stronami podręcznika, ponieważ dane wyjściowe są specyficzne dla systemu operacyjnego i różnią się w zależności od systemu Linux / Unix.
Zasadniczo można również uzyskać czas poprzez normalną listę katalogów:
ls -l
wyświetla wynik ostatniej modyfikacji zawartości pliku,mtime
ls -lc
wypisuje ostatni raz modyfikację statusu pliku,ctime
( jaka jest różnica? )ls -lu
generuje czas ostatniego dostępu,atime
(chociaż przydatność tej koncepcji jest przedmiotem dyskusji )I oczywiście
ctime
nie nagrywa, kiedy plik został „utworzony”. Specyfikacja POSIX definiuje tylko trzy znaczniki czasu, ale niektóre systemy plików Linux przechowują Czas narodzin / Czas utworzenia. Jak znaleźć datę utworzenia pliku? W takiej obsługiwanej konfiguracji można użyćźródło
stat
jest naprawdę szczegółowy. Alels
potrzebuje tylko jednej linii. Byłoby dobrze, gdyby mógł wyświetlać sekundy. Jednak podczas tworzenia list plików ten pierwszy jest doskonale odpowiedni.ls -l
może pokazywać inny format daty, gdy BusyBox jest zainstalowany (na Androidzie). Myślę, że bez niego jest jak „2019-07-26 14:41”, a wraz z nim jest jak „6 maja 21:27”. Dlaczego brakuje roku? Czy istnieje sposób, aby wymusić użycie formatu bez niego?Dla każdego pliku przechowywane są tylko TRZY różne czasy razy, zgodnie z definicją standardu POSIX : http://pubs.opengroup.org/onlinepubs/9699919799/ (patrz sekcja Definicje podstawowe -> 4. Ogólne pojęcia -> plik 4.8 Times Update)
I z <sys / stat.h> :
Poniższe przykłady pokazują różnicę między atime , mtime i ctime , te przykłady są w GNU / Linux BASH. Możesz używać
stat -x
w Mac OS X lub innym BSD Dist. aby zobaczyć podobny format wyjściowy.Po utworzeniu pliku trzy znaczniki czasu są takie same.
1. atime
Najpierw uzyskajmy dostęp do danych pliku przez odczytanie go (
less
lubvim
), wydrukowanie go (cat
) lub skopiowanie go do innego pliku (cp
).2. ctime
Teraz zmienić status pliku, poprzez zmianę zezwolenia (
chmod
) lub zmianę jego nazwy (mv
)Zauważ, że do tej pory zawartość ( dane ) pliku była taka sama jak w momencie jego utworzenia.
3. mtime
Na koniec zmodyfikujmy zawartość pliku poprzez edycję pliku.
4. czas urodzenia
Zauważ również, że nowsza wersja
stat
(np.stat --version 8.13
W Ubuntu 12.04) ma czwartą informację o znaczniku czasu - czas urodzenia (czas utworzenia pliku). Chociaż na razie może nie wyświetlać właściwego czasu:źródło