Metody płatności Abuse

Co robi polecenie stat w systemie Linux

14.11.2021, 16:15

Każdy plik i folder w systemie plików ma tak zwaną strukturę Inode, w której przechowywane są metadane tego obiektu. Przechowuje właściciela, grupę właścicieli, czas modyfikacji, utworzenia i dostępu do pliku, a także inne informacje. Można to zobaczyć nie tylko za pomocą narzędzi do debugowania systemu plików. Niektóre informacje są wyświetlane przez narzędzie ls, ale jeśli potrzebujesz więcej, możesz użyć polecenia stat. Następnie powiemy ci, jak używać tego polecenia w systemie Linux.

Co robi to polecenie

Składnia polecenia jest prosta. Wymaga przekazania opcji i ścieżki do pliku, dla którego chcesz zobaczyć informacje:

$ stat [options] /path/to/file

Przekazywanie opcji nie jest konieczne i nie ma ich zbyt wiele:

-L, dereference - pokazuje informacje o pliku zamiast dowiązania symbolicznego;

-f, --file-system - pokazuje informacje o systemie plików, w którym znajduje się plik;

-c, --format- pozwala określić format wyjściowy zamiast standardowego, każdy plik jest wyprowadzany z nowej linii;

--printf - podobne do --format, tylko dla nowej linii należy użyć ;

-t, --terse - pokazuje informacje w bardzo krótkiej formie, w jednym wierszu;

--version - pokazuje wersję narzędzia.

Zobaczmy kilka przykładów użycia. Aby zobaczyć informacje o pliku, wystarczy uruchomić program bez opcji, przekazując mu ścieżkę do pliku, na przykład /etc/passwd:

$ stat /etc/passwd

Wyjście programu:

File- ścieżka do pliku, dla którego wyświetlane są informacje;

Size- rozmiar pliku w bajtach;

IO Block - rozmiar bloku systemu plików w bajtach;

Blocks- liczba bloków systemu plików zajmowanych przez plik;

Device- identyfikator urządzenia, na przykład dysku twardego, na którym zapisany jest plik;

Inode - unikalny numer Inode tego pliku;

Links- liczba twardych linków do tego pliku;

Access- prawadostępu do pliku;

Uid - identyfikator i nazwa użytkownika-właściciela pliku;

Gid - identyfikator i nazwa grupy plików;

Access- czas ostatniego dostępu do pliku;

Modify- czas ostatniej modyfikacji zawartości pliku;

Changed- czas ostatniej zmiany atrybutów lub zawartości pliku;

Created(Birth) - zarezerwowane do wyświetlania oryginalnej daty utworzenia pliku, ale jeszcze nie zaimplementowane.

Musimy powiedzieć nieco więcej o formacie czasu. Na przykład czas ostatniego dostępu do pliku to 2020-12-02 18:25:01.043831739 +0200. Czas ten jest wyświetlany z uwzględnieniem strefy czasowej. Liczby +0200 wskazują, że strefa czasowa na komputerze, który utworzył lub zmodyfikował ten plik, jest o dwie godziny większa niż UTC, czyli Europa/Kijów w czasie zimowym.

Jeśli spróbujesz przekazać narzędziu dowiązanie symboliczne, pokaże ono tylko informacje z Inode samego dowiązania:

$ stat /etc/passwdlin

Aby zobaczyć informacje o pliku wskazywanym przez link, należy użyć opcji -L:

$ stat -L /etc/passwdlink

Można przekazać więcej niż jeden plik:

$ stat /etc/passwd /etc/group

Aby sformatować dane wyjściowe, można użyć następujących sekwencji znaków:

%A - prawa dostępu;

%b - liczba zajętych bloków;

%F - typ pliku;

%g - identyfikator grupy plików;

%G - nazwa grupy plików;

%i - identyfikator węzła;

%n - nazwa pliku;

%s - rozmiar pliku;

%u - identyfikator właściciela pliku;

%U - nazwa właściciela pliku;

%x - czas ostatniego dostępu;

%y - czas ostatniej modyfikacji zawartości;

%z - czas ostatniej modyfikacji zawartości lub atrybutów.

Nie są to wszystkie możliwe sekwencje, więcej można znaleźć w pomocy narzędzia:

$ man stat

Na przykład, wyświetlmy tylko nazwę pliku i czas ostatniej modyfikacji jego zawartości:

$ stat --printf "File %n has been modified %y " /etc/passwd /etc/group

Jeśli chcesz zobaczyć informacje o systemie plików, w którym znajduje się plik, powinieneś użyć opcji -f:

$ stat -f /etc/passwd

Zobaczmy, co oznaczają pola wyświetlane przez narzędzie:

File- nazwa pliku;

Typ- typ systemu plików;

ID - identyfikator systemu plików;

Name length(Namelen) - maksymalna długość nazwy w systemie plików;

Rozmiarbloku- ilość danych w żądaniu odczytu lub zapisu dla optymalnej prędkości;

Podstawowy rozmiar bloku - fizyczny rozmiar bloku w systemie plików.

Następnie podawana jest całkowita liczba bloków w systemie i liczba wolnych bloków.