Android

Polecenie stat w systemie Linux

[Poradnik] Struktura katalogów w systemie Linux czyli wszystko jest plikiem :) Dlaczego / ROOT

[Poradnik] Struktura katalogów w systemie Linux czyli wszystko jest plikiem :) Dlaczego / ROOT

Spisu treści:

Anonim

stat to narzędzie wiersza polecenia, które wyświetla szczegółowe informacje o danych plikach lub systemach plików.

W tym artykule wyjaśniono, jak używać polecenia stat .

Używanie polecenia stat

Składnia polecenia stat jest następująca:

stat… FILE…

stat akceptuje co najmniej jedną wejściową nazwę FILE i zawiera szereg opcji, które kontrolują zachowanie i wynik polecenia.

Rzućmy okiem na następujący przykład:

stat file.txt

Dane wyjściowe będą wyglądać mniej więcej tak:

File: file.txt Size: 4030 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 13633379 Links: 1 Access: (0644/-rw-r--r--) Uid: (1000/ linuxize) Gid: (1000/ linuxize) Access: 2019-11-06 09:52:17.991979701 +0100 Modify: 2019-11-06 09:52:17.971979713 +0100 Change: 2019-11-06 09:52:17.971979713 +0100 Birth: -

Po wywołaniu bez żadnych opcji stat wyświetla następujące informacje o pliku:

  • Plik - Nazwa pliku. Rozmiar - Rozmiar pliku w bajtach. Bloki - Liczba przydzielonych bloków pobieranych przez plik. Blok.IO - Rozmiar w bajtach każdego bloku. Typ pliku - (np. Zwykły plik, katalog, łącze symboliczne…) Urządzenie - numer urządzenia w systemie szesnastkowym i dziesiętnym. i-węzeł - numer i-węzła. łącza - liczba twardych łączy. dostęp - uprawnienia do plików w metodach numerycznych i symbolicznych. identyfikator użytkownika - identyfikator użytkownika i nazwa właściciela. identyfikator grupy Identyfikator i nazwa właściciela Kontekst - Kontekst bezpieczeństwa SELinux Dostęp - Ostatni dostęp do pliku Zmodyfikuj - Ostatnia modyfikacja zawartości pliku Zmiana - Ostatnia zmiana atrybutu lub zawartości pliku Narodziny - Czas utworzenia pliku (nieobsługiwany w systemie Linux).

Wyświetlanie informacji o systemie plików

Aby uzyskać informacje o systemie plików, w którym znajduje się dany plik, zamiast informacji o samym pliku, użyj opcji -f , ( --file-system ):

stat -f file.txt

Dane wyjściowe polecenia będą wyglądać następująco:

File: "package.json" ID: 8eb53097b4494d20 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 61271111 Free: 25395668 Available: 22265851 Inodes: Total: 15630336 Free: 13979610

Gdy stat jest wywoływany z opcją -f , wyświetla następujące informacje:

  • Plik - nazwa pliku. - Identyfikator systemu plików w systemie szesnastkowym. Namelen - Maksymalna długość nazw plików. Podstawowy rozmiar bloku - Rozmiar każdego bloku w systemie plików. Bloki:
    • Razem - Liczba wszystkich bloków w systemie plików. Bezpłatnie - Liczba wolnych bloków w systemie plików. Dostępne - Liczba wolnych bloków dostępnych dla użytkowników innych niż root.
    I-węzły:
    • Razem - Liczba wszystkich i-węzłów w systemie plików. Bezpłatnie - Liczba wolnych i-węzłów w systemie plików.

Dereferencje (Follow) Symlinks

Domyślnie stat nie podąża za dowiązaniami symbolicznymi. Jeśli uruchomisz polecenie na dowiązaniu symbolicznym, dane wyjściowe będą zawierać informacje o dowiązaniu symbolicznym, a nie plik, na który wskazuje:

stat /etc/resolv.conf

File: /etc/resolv.conf ->../run/systemd/resolve/stub-resolv.conf Size: 39 Blocks: 0 IO Block: 4096 symbolic link Device: 801h/2049d Inode: 8126659 Links: 1 Access: (0777/lrwxrwxrwx) Uid: (0/ root) Gid: (0/ root) Access: 2019-11-06 21:12:26.875956073 +0100 Modify: 2018-07-24 11:11:48.128794519 +0200 Change: 2018-07-24 11:11:48.128794519 +0200 Birth: -

Aby usunąć odwołanie (śledzić) i wyświetlić informacje o pliku, do którego prowadzi dowiązanie symboliczne, użyj opcji -L , ( --dereference ):

stat -L /etc/resolv.conf

File: /etc/resolv.conf Size: 715 Blocks: 8 IO Block: 4096 regular file Device: 17h/23d Inode: 989 Links: 1 Access: (0644/-rw-r--r--) Uid: (101/systemd-resolve) Gid: (103/systemd-resolve) Access: 2019-11-06 20:35:25.603689619 +0100 Modify: 2019-11-06 20:35:25.555689733 +0100 Change: 2019-11-06 20:35:25.555689733 +0100 Birth: -

Dostosowywanie danych wyjściowych

Polecenie stat ma dwie opcje, które pozwalają dostosować dane wyjściowe do własnych potrzeb: -c , ( --format="format" ) i --printf="format" .

Różnica między tymi dwiema opcjami polega na tym, że gdy dwa lub więcej plików jest używanych jako operanty - --format automatycznie dodaje nowy wiersz po wyjściu każdego operandu. --printf interpretuje ucieczki odwrotnego ukośnika.

Istnieje wiele dyrektyw formatujących pliki i systemy plików, których można używać z --format i --printf .

Na przykład, aby wyświetlić tylko typ używanego pliku:

stat --format="%F" /dev/null

character special file

Możesz łączyć dowolną liczbę dyrektyw formatujących i opcjonalnie używać niestandardowych separatorów między nimi. Separator może być pojedynczym znakiem lub łańcuchem:

stat --format="%n, %F" /dev/null

/dev/null, character special file

Aby zinterpretować znaki specjalne, takie jak znak nowej linii lub tabulator, użyj opcji --printf :

stat --printf='Name: %n\nPermissions: %a\n' /etc

drukuje nową linię:

Name: /etc Permissions: 755

stat może również wyświetlać informacje w zwięzłej formie. Ten format jest przydatny do analizowania przez inne narzędzia.

Wywołaj polecenie z opcją -t ( --terse ), aby wydrukować wynik w postaci zwięzłej:

stat -t /etc

/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096

Aby uzyskać pełną listę wszystkich dyrektyw dotyczących formatów plików i systemów plików, wpisz man stat lub stat --help w swoim terminalu.

Wniosek

Polecenie stat informacje o podanych plikach i systemach plików.

W Linuksie istnieje kilka innych poleceń, które mogą wyświetlać informacje o danych plikach, przy czym ls jest najczęściej używanym, ale pokazuje tylko część informacji dostarczonych przez polecenie stat .

terminal statystyczny