> Linux Reviews > man >

stat

stat

drukuj status pliku lub systemu plików


  1. stat.1.man
  2. stat.2.man


1. stat.1.man

Manpage of STAT

STAT

Section: polecenia użytkownika (1)
Updated: lipiec 2002
Index Return to Main Contents
 

NAZWA

stat - drukuj status pliku lub systemu plików  

SKŁADNIA

stat [OPCJA] PLIK...  

OPIS

Wyświetla status pliku lub systemu plików

-f, --filesystem
wyświetla informacje o stanie systemu plików, a nie o stanie pliku
-c --format=FORMAT
używa podanego FORMATU zamiast formatu domyślnego
-l, --dereference
podąża za linkami
-t, --terse
wyświetla informacje w zwięzłej postaci
--help
wyświetla pomoc i kończy działanie
--version
wyświetla informacje o wersji i kończy działanie

Poprawne sekwencje formatu dla plików (jeżeli nie podano opcji --filesystem):


 %A - prawa dostępu w formie czytelnej dla człowieka
 %a - prawa dostępu ósemkowo
 %b - liczba zaalokowanych bloków
 %D - numer urządzenia szesnastkowo
 %d - numer urządzenia w systemie dziesiętnym
 %F - typ pliku
 %f - tryb pliku szesnastkowo
 %G - nazwa grupy, która jest właścicielem pliku
 %g - identyfikator grupy, która jest właścicielem pliku
 %h - liczba twardych dowiązań
 %i - numer węzła (inode)
 %N - nazwa pliku w apostrofach ze wskazaniem linków symbol.
 %n - nazwa pliku
 %o - rozmiar bloku wejścia/wyjścia
 %s - całkowity rozmiar w bajtach
 %T - poboczny (minor) typ urządzenia szesnastkowo
 %t - główny (major) typ urządzenia szesnastkowo
 %U - nazwa właściciela pliku
 %u - identyfikator właściciela pliku
 %X - czas ostatniego dostępu podany jako liczba sekund od epoki
 %x - czas ostatniego dostępu
 %Y - czas ostatniej modyfikacji jako liczba sekund od epoki
 %y - czas ostatniej modyfikacji
 %Z - czas ostatniej zmiany podany jako liczba sekund od epoki
 %z - czas ostatniej zmiany

Poprawne sekwencje formatu dla systemów plików:


 %a - liczba wolnych bloków dostępnych dla nie-administratorów
 %b - całkowita liczba bloków danych w systemie plików
 %c - całkowita liczba węzłów w systemie plików
 %d - liczba wolnych węzłów w systemie plików
 %f - liczba wolnych bloków w systemie plików
 %i - identyfikator systemu plików szesnastkowo
 %l - maksymalna długość nazw plików
 %n - nazwa pliku
 %s - optymalny rozmiar bloku przy transferze
 %T - typ w formie czytelnej dla człowieka
 %t - typ szesnastkowo
 

AUTOR

Napisane przez Michaela Meskesa.  

ZGŁASZANIE BŁĘDÓW

Prosimy zgłaszać błędy do <bug-fileutils@gnu.org>.  

PRAWA AUTORSKIE

Copyright © 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  

ZOBACZ TAKŻE

Pełna dokumentacja programu stat jest utrzymywana w postaci podręcznika texinfo. Jeżeli programy info i stat zostały poprawnie zainstalowane, to za pomocą polecenia
info stat

można uzyskać dostęp do pełnej wersji podręcznika.


 

Index

NAZWA
SKŁADNIA
OPIS
AUTOR
ZGŁASZANIE BŁĘDÓW
PRAWA AUTORSKIE
ZOBACZ TAKŻE

This document was created by man2html using the manual pages.
Time: 00:25:15 GMT, November 20, 2008

2. stat.2.man

Manpage of STAT

STAT

Section: Podręcznik programisty Linuksa (2)
Updated: 2004-06-23
Index Return to Main Contents
 

NAZWA

stat, fstat, lstat - pobiera status pliku  

SKŁADNIA

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

int stat(const char *path, struct stat *buf);
int fstat(int filedes, struct stat *buf);
int lstat(const char *path, struct stat *buf);  

OPIS

Funkcje te zwracają informacje o podanym pliku. Do uzyskania tej informacji nie są wymagane prawa dostępu do samego pliku, lecz --- w przypadku stat() i lstat() --- konieczne są prawa wykonywania (przeszukiwania) do wszystkich katalogów na prowadzącej do pliku ścieżce path.

stat() zwraca status pliku wskazywanego przez path, ładując go do argumentu buf.

lstat() jest identyczny z stat(), lecz w przypadku gdy path jest linkiem symbolicznym, to zwraca status tego linka, a nie pliku, do którego się ten link odwołuje.

fstat() jest identyczny z stat(), z tym wyjątkiem, że plik, którego status ma zwrócić, jest określony przez deskryptor pliku filedes.

Wszystkie te funkcje zwracają strukturę stat, zawierającą następujące pola:

struct stat {
    dev_t     st_dev;      /* ID urządzenia zawierającego plik */
    ino_t     st_ino;      /* numer i-węzła (inode) */
    umode_t   st_mode;     /* ochrona */
    nlink_t   st_nlink;    /* liczba dowiązań stałych (hardlinks) */
    uid_t     st_uid;      /* ID użytkownika właściciela */
    gid_t     st_gid;      /* ID grupy właściciela */
    dev_t     st_rdev;     /* ID urządzenia (jeśli plik specjalny) */
    off_t     st_size;     /* całkowity rozmiar w bajtach */
    blksize_t st_blksize;  /* wielkość bloku dla I/O systemu plików */
    blkcnt_t  st_blocks;   /* liczba zaalokowanych bloków */
    time_t    st_atime;    /* czas ostatniego dostępu */
    time_t    st_mtime;    /* czas ostatniej modyfikacji */
    time_t    st_ctime;    /* czas ostatniej zmiany */
};

Pole st_dev określa urządzenie, na którym plik się znajduje.

Pole st_rdev opisuje urządzenie reprezentowane przez ten plik (i-węzeł).

Pole st_size podaje rozmiar pliku w bajtach (jeżeli plik jest regularny lub jest dowiązaniem symbolicznym). Rozmiarem dowiązania symbolicznego jest długość ścieżki, na którą wskazuje, z wyłączeniem końcowego bajtu null.

Pole st_sblocks określa liczbę bloków zajmowanych przez plik w jednostkach 512-bajtowych. (Liczba ta może być mniejsza niż st_size/512, na przykład wtedy, gdy plik ma dziury).

Pole st_blksize zawiera "preferowany" rozmiar bloku dla efektywnych operacji wejścia/wyjścia dla pliku (Zapis do pliku mniejszych kawałków może spowodować nieefektywne operacje odczyt-modyfikacja-powtórny zapis).

Nie wszystkie systemy plików pod Linuksem obsługują wszystkie pola czasu. Niektóre systemy plików można zamontować w ten sposób, że dostęp do pliku nie powoduje uaktualnienia pola st_atime. (Patrz `noatime' w mount(8)).

Pole st_atime jst zmieniane przez dostęp do pliku, np. przez execve(2), mknod(2), pipe(2), utime(2) i read(2) (w razie odczytania więcej niż zera bajtów). Inne procedury, jak mmap(2) mogą, ale nie muszą, zmienić st_atime.

Zazwyczaj pole st_mtime jest zmieniane przez modyfikowanie pliku, np. przez mknod(2), truncate(2), utime(2) i write(2) (więcej niż zero bajtów). Co więcej st_mtime katalogu jest zmieniane przy tworzeniu plików w tym katalogu lub ich usuwaniu. Pole st_mtime nie jest zmieniane po zmianach właściciela, grupy, liczby twardych linków (hardlinks) czy praw dowiązań.

Pole st_ctime jest zmieniane przy zapisywaniu lub ustawianiu informacji i-węzła (np. właściciela, grupy, liczby dowiązań, praw itp.).

Zdefiniowane są następujące makra POSIX sprawdzające typ pliku przy użyciu pola st_mode:

S_ISREG(m)
czy plik jest regularny?
S_ISDIR(m)
katalog?
S_ISCHR(m)
urządzenie znakowe?
S_ISBLK(m)
urządzenie blokowe?
S_ISFIFO(m)
kolejka FIFO (potok nazwany)?
S_ISLNK(m)
dowiązanie symboliczne? (Nie w POSIX.1-1996).
S_ISSOCK(m)
gniazdo? (Nie w POSIX.1-1996).

Dla pola st_mode zdefiniowano następujące flagi:

S_IFMT0170000maska bitowa dla pól bitowych typu pliku
S_IFSOCK0140000gniazdo
S_IFLNK0120000dowiązanie symboliczne (symbolic link)
S_IFREG0100000plik regularny
S_IFBLK0060000urządzenie blokowe
S_IFDIR0040000katalog
S_IFCHR0020000urządzenie znakowe
S_IFIFO0010000kolejka FIFO
S_ISUID0004000bit `set UID'
S_ISGID0002000bit `set-group-ID' (patrz niżej)
S_ISVTX0001000bit `sticky' (patrz niżej)
S_IRWXU00700maska praw dostępu właściciela pliku
S_IRUSR00400właściciel ma prawa odczytu
S_IWUSR00200właściciel ma prawa zapisu
S_IXUSR00100 właściciel ma prawa wykonania
S_IRWXG00070maska praw dostępu dla grupy
S_IRGRP00040grupa ma prawa odczytu
S_IWGRP00020grupa ma prawa zapisu
S_IXGRP00010grupa ma prawa wykonania
S_IRWXO00007maska uprawnień dla innych (poza grupą)
S_IROTH00004inni mają prawa odczytu
S_IWOTH00002inni mają prawa zapisu
S_IXOTH00001inni mają prawa wykonania
Bit `set-group-ID' (S_ISGID) ma kilka specjalnych znaczeń. Ustawiony na katalogu oznacza, że dla tego katalogu powinna być używana semantyka BSD: pliki w nim utworzone dziedziczą identyfikator grupy z katalogu, a nie z efektywnego identyfikatora grupy procesu tworzącego plik, a tworzone katalogi będą miały także ustawiony bit S_ISGID. Dla pliku, który nie ma ustawionego bitu wykonywania dla grupy (S_IXGRP), bit `set-group-ID' oznacza obowiązkowe blokowanie pliku/rekordu. Bit `sticky' (S_ISVTX) ustawiony na katalogu oznacza, że tylko właściciel pliku lub właściciel katalogu, lub proces uprzywilejowany może usunąć plik w tym katalogu lub zmienić nazwę tego pliku.  

UWAGI LINUKSOWE

Od wersji jądra struktura stat obsługuje nanosekundową dokładność wszystkich trzech pól czasowych. Glibc podaje nanosekundową część każdego z tych pól, używając albo st_atim.tv_nsec, jeżeli zdefiniowano makro _BSD_SOURCE lub _SVID_SOURCE, albo st_atimensec, jeżeli nie zdefiniowano żadnego z tych makr. W systemach plików, które nie obsługują takiej dokładności czasowej, wartości nanosekund w tych polach wynoszą 0.

Dla większości plików w katalogu /proc, stat() w polu st_size zwraca 0, a nie rzeczywisty rozmiar pliku.  

WARTOŚĆ ZWRACANA

Po sukcesie zwracane jest zero. Po błędzie -1 i ustawiane jest errno.  

BŁĘDY

EACCES
Brak uprawnień do przeszukiwania jednego z katalogów w ścieżce zaczynającej path. (Patrz także path_resolution(2)).
EBADF
filedes jest nieprawidłowy.
EFAULT
Niepoprawny adres.
ELOOP
Podczas rozwiązywania ścieżki napotkano zbyt wiele dowiązań symbolicznych.
ENAMETOOLONG
Zbyt długa nazwa pliku.
ENOENT
Składnik ścieżki path nie istnieje lub ścieżka jest pustym łańcuchem znaków.
ENOMEM
Brak pamięci (tj. pamięci jądra).
ENOTDIR
Składnik ścieżki nie jest katalogiem.
 

ZGODNE Z

Funkcje stat() i fstat() są zgodne z SVr4, SVID, POSIX, X/OPEN, 4.3BSD. Funkcja lstat() jest zgodna z 4.3BSD i SVr4. SVr4 dokumentuje następujące dodatkowe błędy fstat(): EINTR, ENOLINK i EOVERFLOW. SVr4 dokumentuje następujące dodatkowe błędy stat() i lstat(): EINTR, EMULTIHOP, ENOLINK i EOVERFLOW. Używanie pól st_blocks i st_blksize może być mało przenośne. (Zostały wprowadzone w BSD, nie są podawane przez POSIX. Interpretacja różni się między systemami, a nawet na jednym systemie, jeżeli zaangażowane są montowania NFS).

Standard POSIX nie opisuje bitów S_IFMT, S_IFSOCK, S_IFLNK, S_IFREG, S_IFBLK, S_IFDIR, S_IFCHR, S_IFIFO, S_ISVTX, ale zamiast tego wymaga używania makr S_ISDIR(), itp. Makra S_ISLNK i S_ISSOCK nie występują w POSIX.1-1996, ale oba będą w następnej wersji standardu POSIX; pierwsze z tych makr jest wzięte z SVID, a drugie z SUSv2.

Unix V7 (i kolejne systemy) miał S_IREAD, S_IWRITE, S_IEXEC, podczas gdy POSIX nakazuje używanie S_IRUSR, S_IWUSR, S_IXUSR.  

INNE SYSTEMY

Wartości, które były (lub nadal są) w użyciu w różnych systemach:
szesnastkowonazwalsósemkowoopis
f000S_IFMT170000maska bitowa dla pól bitowych typu pliku
0000000000niedziałający i-węzeł w SCO, nieznany typ w BSD
SVID-v2 i XPG2 mają zarówno 0, jak i 0100000 dla zwykłego pliku
1000S_IFIFOp|010000kolejka FIFO (potok nazwany)
2000S_IFCHRc020000specjalny znakowy (V7)
3000S_IFMPC030000specjalny znakowy zwielokrotniony (V7)
4000S_IFDIRd/040000katalog (V7)
5000S_IFNAM050000nazwany plik specjalny XENIXa
z dwoma podtypami, rozróżnianymi przez wartości 1,2 w st_rdev:
0001S_INSEMs000001podtyp IFNAM semafora XENIX
0002S_INSHDm000002podtyp IFNAM dzielonych danych XENIX
6000S_IFBLKb060000specjalny blokowy (V7)
7000S_IFMPB070000specjalny blokowy zwielokrotniony (V7)
8000S_IFREG-100000regularny (V7)
9000S_IFCMP110000skompresowany VxFS
9000S_IFNWKn110000sieciowy specjalny (HP-UX)
a000S_IFLNKl@120000dowiązanie symboliczne (BSD)
b000S_IFSHAD130000shadow i-węzeł ACL w Solarisie (niedost. w przestrz. użytkow.)
c000S_IFSOCKs=140000gniazdo (BSD; także "S_IFSOC" na VxFS)
d000S_IFDOORD>150000drzwi Solarisa
e000S_IFWHTw%160000BSD whiteout (nieużywane dla i-węzła)

0200S_ISVTX001000`bit sticky': zachowaj wyswappowany tekst nawet po użyciu(V7)
zarezerwowane (SVID-v2)
Dla niekatalogów: nie buforuj tego pliku (SunOS)
Dla katalogów: flaga ograniczonego usuwania (SVID-v4.2)
0400S_ISGID002000set-group-ID podczas wykonywania (V7)
dla katalogów: używaj semantyki BSD propagowania ID grupy
0400S_ENFMT002000egzekwowanie blokowanie plików SysV (dzielone z S_ISGID)
0800S_ISUID004000set-user-ID podczas wykonywania (V7)
0800S_CDF004000katalog jest plikiem zależnym od kontekstu (HP-UX)

Polecenie `sticky' pojawiło się w wersji32V systemu AT&T UNIX.  

ZOBACZ TAKŻE

chmod(2), chown(2), fstatat(2), readlink(2), utime(2), capabilities(7)


 

Index

NAZWA
SKŁADNIA
OPIS
UWAGI LINUKSOWE
WARTOŚĆ ZWRACANA
BŁĘDY
ZGODNE Z
INNE SYSTEMY
ZOBACZ TAKŻE

This document was created by man2html using the manual pages.
Time: 00:25:15 GMT, November 20, 2008

SVENSKA - SVENSKA - SVENSKA - nl