Bash-Linux.com : Le SHELL pour les nuls

  Actuellement 46 lignes de commande disponibles
login as: root
root@213.186.33.18's password:
Last login: Fri Mar 12 17:37:27 2010 from 38.107.191.118
[root@bash-linux ~] # echo "Bienvenue sur Bash-Linux.com"_
 Manuel des commandes UNIX (man) Version française

Indiquez la fonction :

Man Stat en français

STAT(2) Manuel du programmeur Linux STAT(2)
 
NOM


stat, fstat, lstat - Obtenir l'etat d'un fichier (file status).
 
SYNOPSIS


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


Ces fonctions renvoient des informations a propos d'un fichier. Aucune permission n'est necessaire sur le fichier lui-meme, mais -- dans le cas de stat() et lstat() -- la permission d'execution (parcours) est necessaire pour tous les repertoires de path qui menent au fichier. stat() recupere l'etat du fichier pointe par file_name et remplit le tampon buf. lstat() est identique a stat(), sauf que si path est un lien symbol- ique, il donne l'etat du lien lui-meme plutot que celui du fichier vise. fstat() est identique a stat(), sauf que le fichier ouvert est pointe par le descripteur filedes, obtenu avec open(2). Les trois fonctions retournent une structure stat contenant les champs suivants : struct stat { dev_t st_dev; /* ID du peripherique contenant le fichier */ ino_t st_ino; /* Numero i-noeud */ mode_t st_mode; /* Protection */ nlink_t st_nlink; /* Nb liens materiels */ uid_t st_uid; /* UID proprietaire */ gid_t st_gid; /* GID proprietaire */ dev_t st_rdev; /* ID peripherique (si peripherique i-noeud */ off_t st_size; /* Taille totale en octets */ blksize_t st_blksize; /* Taille de bloc pour E/S */ blkcnt_t st_blocks; /* Nombre de blocs alloues */ time_t st_atime; /* Heure dernier acces */ time_t st_mtime; /* Heure derniere modification */ time_t st_ctime; /* Heure dernier changement etat */ }; Le champ st_dev decrit le peripherique sur laquel reside le fichier. le champ st_rdev decrit le peripherique que ce fichier (i-noeud) repre- sente. Le champ st_size indique la taille du fichier (s'il s'agit d'un fichier regulier ou d'un lien symbolique) en octets. La taille d'un lien symbolique est la longueur de la chaine representant le chemin d'acces qu'il vise, sans l'octet nul final. Le champ st_blocks donne indique le nombre de blocks alloues au fichier, en unite de 512 octets (cette valeur peut etre plus petite que st_size/512 par exemple, si le fichier contient des trous). Le champ st_blksize indique la taille de bloc preferee pour les entrees-sor- ties du systeme de fichiers (l'ecriture dans un fichier par petits morceaux peut induire de nombreuses etapes lecture-modification-ecrit- ure peu efficaces). Les systemes de fichiers de Linux n'implementent pas tous les champs lies a la date. Certains systemes de fichiers autorisent le montage de telle maniere que les acces ne modifient pas le champ st_atime (voir l'option noatime de mount(8)). Le champ st_atime est modifie par les acces au fichier, c'est-a-dire avec execve(2), mknod(2), pipe(2), utime(2) et read(2) (d'au moins un octet). D'autres routines, comme mmap(2), peuvent ou non mettre a jour ce champ st_atime. Le champ st_mtime est modifie par des changements sur le fichier lui- meme, c'est-a-dire mknod(2), truncate(2), utime(2) et write(2) (d'au moins un octet). D'autre part, le champ st_mtime d'un repertoire est modifie lors de la creation ou la suppression de fichiers en son sein. Le champ st_mtime n'est pas mis a jour lors de modification de propri- etaire, groupe, mode ou nombre de liens physiques. Le champ st_ctime est modifie lors d'une ecriture ou une modification de donnees concernant l'i-noeud (proprietaire, groupe, mode, etc.). Les macros POSIX suivantes sont fournies pour verifier le type de fichier en utilisant le champ stmode : S_ISREG(m) un fichier regulier ? S_ISDIR(m) un repertoire ? S_ISCHR(m) un peripherique en mode caractere ? S_ISBLK(m) un peripherique en mode bloc ? S_ISFIFO(m) une FIFO ? S_ISLNK(m) un lien symbolique ? (Pas dans POSIX.1-1996). S_ISSOCK(m) une socket ? (Pas dans POSIX.1-1996). Les attributs suivants correspondent au champ st_mode : S_IFMT 00170000 masque du type de fichier S_IFSOCK 0140000 socket S_IFLNK 0120000 lien symbolique S_IFREG 0100000 fichier regulier S_IFBLK 0060000 peripherique blocs S_IFDIR 0040000 repertoire S_IFCHR 0020000 peripherique caracteres S_IFIFO 0010000 fifo S_ISUID 0004000 bit set-user-ID S_ISGID 0002000 bit set-group-ID (voir plus loin) S_ISVTX 0001000 bit "sticky" (voir plus loin) S_IRWXU 00700 lecture/ecriture/execution du proprietaire S_IRUSR 00400 le proprietaire a le droit de lecture S_IWUSR 00200 le proprietaire a le droit d'ecriture S_IXUSR 00100 le proprietaire a le droit d'execution S_IRWXG 00070 lecture/ecriture/execution du groupe S_IRGRP 00040 le groupe a le droit de lecture S_IWGRP 00020 le groupe a le droit d'ecriture S_IXGRP 00010 le groupe a le droit d'execution S_IRWXO 00007 lecture/ecriture/execution des autres S_IROTH 00004 les autres ont le droit de lecture S_IWOTH 00002 les autres ont le droit d'ecriture S_IXOTH 00001 les autres ont le droit d'execution Le bit set-group-ID (S_ISGID) a plusieurs utilisations particulieres : pour un repertoire, il indique que la semantique BSD doit etre appliquee en son sein, c'est-a-dire que les fichiers qui y sont crees heritent leur GID du repertoire et non pas du GID effectif du processus createur, et les sous-repertoires auront automatiquement le bit S_ISGID actif. Pour les fichiers qui n'ont pas d'autorisation d'execution pour le groupe (S_IXGRP non actif), le bit set-group-ID indique qu'un ver- rouillage strict est en vigueur sur ce fichier. Le bit sticky (S_ISVTX) sur un repertoire indique que les fichiers qui s'y trouvent ne peuvent etre renommes ou effaces que par leur pro- prietaire, par le proprietaire du repertoire ou par un processus privi- legie.
 
NOTES LINUX


Depuis le noyau 2.5.48, la structure stat supporte un resolution en nanoseconde pour les trois champs d'horodatage des fichiers. La glibc expose le composant nanoseconde de chaque champ en utilisant des noms soit de la forme st_atim.tv_nsec, si la macro de test de fonctionnalite _BSD_SOURCE ou _SVID_SOURCE est definie, soit de la forme st_atimensec, si aucune de ces macros n'est definie. Sur les systemes de fichiers qui ne supportent pas les horodatages plus precis que la seconde, ces champs nanosecondes sont renvoyes avec la valeur 0. Pour la plupart des fichiers du repertoire proc, stat() ne renvoie pas la taille du fichier dans le champ st_size ; a la place, le champ con- tient la valeur 0.
 
VALEUR RENVOYEE


Ces fonctions retournent zero si elles reussissent. En cas d'echec, -1 est renvoye, et errno contient le code d'erreur.
 
ERREURS


EACCES La permission de parcours est refusee pour un des repertoires contenu dans le chemin path. (Voir aussi path_resolution(2).) EBADF filedes est un mauvais descripteur. EFAULT Un pointeur se trouve en dehors de l'espace d'adressage. ELOOP Trop de liens symboliques rencontres dans le chemin d'acces.
 
ENAMETOOLONG


Nom de fichier trop long. ENOENT Un composant de path n'existe pas, ou il s'agit d'une chaine vide. ENOMEM Pas assez de memoire pour le noyau.
 
ENOTDIR


Un composant du chemin d'acces n'est pas un repertoire.
 
CONFORMITE


Ces appels systeme sont conformes a SVr4, BSD 4.3, POSIX.1-2001. L'utilisation des champs st_blocks et st_blksize risque d'etre moins portable. Ils ont ete introduits dans BSD. Leur interpretation change suivant les systemes, voire sur un meme systeme s'il y a des montages NFS. POSIX ne decrit pas les bits S_IFMT, S_IFSOCK, S_IFLNK, S_IFREG, S_IFBLK, S_IFDIR, S_IFCHR, S_IFIFO, S_ISVTX, mais reclame d'utiliser les macros S_ISDIR(), etc. Les macros S_ISLNK et S_ISSOCK ne se trou- vent pas dans POSIX.1-1996 mais sont presentes dans POSIX.1-2001. La premiere vient de SVID 4, la seconde de SUSv2. Unix V7 (et les systemes suivants) propose S_IREAD, S_IWRITE, S_IEXEC, la ou POSIX prefere leurs synonymes S_IRUSR, S_IWUSR, S_IXUSR.
 
AUTRES SYSTEMES


Voici quelques valeurs qui ont ete (ou sont) utilisees sur d'autres systemes hex nom ls octal description f000 S_IFMT 170000 Masque du type de fichier 0000 000000 SCO out-of-service inode, BSD unknown type SVID-v2 and XPG2 have both 0 and 0100000 for ordinary file 1000 S_IFIFO p| 010000 FIFO (tube nomme) 2000 S_IFCHR c 020000 fichier special caractere (V7) 3000 S_IFMPC 030000 fichier special caractere multiplexe (V7) 4000 S_IFDIR d/ 040000 repertoire (V7) 5000 S_IFNAM 050000 fichier special nomme XENIX avec deux sous-types distingues par st_rdev valant 1 ou 2: 0001 S_INSEM s 000001 sous-type semaphore de IFNAM XENIX 0002 S_INSHD m 000002 sous-type donnees partagees de IFNAM XENIX 6000 S_IFBLK b 060000 fichier special bloc (V7) 7000 S_IFMPB 070000 fichier special bloc multiplexe (V7) 8000 S_IFREG - 100000 fichier normal (V7) 9000 S_IFCMP 110000 compresse VxFS 9000 S_IFNWK n 110000 fichier special reseau (HP-UX) a000 S_IFLNK l@ 120000 lien symbolique (BSD) b000 S_IFSHAD 130000 Fichier shadow Solaris pour l'ACL (invisible) c000 S_IFSOCK s= 140000 socket (BSD; aussi "S_IFSOC" sur VxFS) d000 S_IFDOOR D> 150000 Solaris door e000 S_IFWHT w% 160000 BSD whiteout (non utilise pour les inoeuds) 0200 S_ISVTX 001000 sticky bit : garder en memoire apres execution (V7) reserve (SVID-v2) non-repertoires : ne pas swapper le fichier (SunOS) repertoires : restrictions d'effacement (SVID-v4.2) 0400 S_ISGID 002000 Utiliser l'ID du groupe a l'execution (V7) repertoires : semantique BSD propageant le GID 0400 S_ENFMT 002000 Verrouillage strict Systeme V (partage S_ISGID) 0800 S_ISUID 004000 Utiliser l'ID utilisateur a l'execution (V7) 0800 S_CD 004000 Fichier repertoire dependant du contexte (HP-UX) Une commande sticky est apparue dans la version 32V d'AT&T UNIX.
 
VOIR AUSSI


access(2), chmod(2), chown(2), fstatat(2), readlink(2), utime(2), capa- bilities(7)
 
TRADUCTION


Ce document est une traduction realisee par Christophe Blaess le 15 octobre 1996 et revisee le 14 aot 2006. L'equipe de traduction a fait le maximum pour realiser une adaptation francaise de qualite. La version anglaise la plus a jour de ce document est toujours consultable via la commande : LANG=C man 2 stat . N'hes- itez pas a signaler a l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. Linux 2.6.7 23 juin 2004 STAT(2)


 Dernières recherches
Man  en anglais Man stat en anglaisMan  en français Man stat en français
Man  en anglais Man clone en anglaisMan  en français Man clone en français
Man  en anglais Man cat en anglaisMan  en français Man cat en français
Man  en anglais Man tar en anglaisMan  en français Man tar en français
Man  en anglais Man calloc en anglaisMan  en français Man calloc en français
Man  en anglais Man umask en anglaisMan  en français Man umask en français
Man  en anglais Man tty en anglaisMan  en français Man tty en français
Man  en anglais Man ls en anglaisMan  en français Man ls en français
Man  en anglais Man seteuid en anglaisMan  en français Man seteuid en français
Man  en anglais Man open en anglaisMan  en français Man open en français
Man  en anglais Man free en anglaisMan  en français Man free en français
Man  en anglais Man nanosleep en anglaisMan  en français Man nanosleep en français
Man  en anglais Man forkpty en anglaisMan  en français Man forkpty en français
Man  en anglais Man id en anglaisMan  en français Man id en français
Man  en anglais Man fcvt en anglaisMan  en français Man fcvt en français

 Recherche

Dans ce moteur de recherche, vous pouvez taper directement votre besoin, en une phrase normale, humaine.
Exemple : vous cherchez comment remplacer un mot par un autre dans tous les fichiers d'un certain dossier. Vous pouvez écrire "Comment remplacer un mot par un autre dans tous les fichiers d'un dossier". Le moteur vous ramenera les résultats en fonction de leur pertinence.
Vous pouvez bien sûr ne chercher qu'un seul mot-clé, par exemple "find".
 Toutes les lignes de code
Par popularité
Par fonction
Recherche avancée
 Les logiciels SHELL/SSH
Putty
Astuces Bash
Faire du SHELL avec PHP!
 La doc officielle
Les man Linux en français
Les man Linux en anglais
 Proposer vos bash
Partagez vos lignes!
 Les requêtes
Déposer une requête
Voir/répondre à une requête
 Quelques sites interessants
Bons sites pour apprendre
 Rechercher