Tout fichier possède son unique inode. L'inode contient la totalité des informations sur le fichier, sauf le nom. Les inodes sont tous de même taille.
En Unix,
le "nom du fichier" n'est même pas une information du fichier, mais une information du répertoire qui contient un "lien dur" vers le fichier.
Renommer un fichier ne modifie pas le fichier lui-même, et ne nécessite pas d'avoir le droit d'écrire dans le fichier. (Supprimer le fichier non plus, mais ça modifie évidemment l'inode du fichier.)
Les informations des inodes
- Type de fichier : -,d, l, c, p, b.
C'est la sortie de ls -l, les types de fichiers sont en réalité :
"-" : fichier régulier (regular), créé par
open(2) ou
touch(1)
"d" : répertoire (directory), créé par
mkdir"l" : lien symbolique (symlink), créé par
symlink(2),
ln(1)
"p" : pipe nommé (FIFO special file), créé par
mkfifo"c", "b" : périphérique (device), sémantique dépendante du driver (autant de sémantiques différentes que de familles de périphériques), peut aussi bien être une abstraction du matériel, donner l'accès direct à du matériel, correspondre à une abstraction logicielle
Et tu as omis :
"s" : socket UNIX nommée, créée par
bind - Taille du fichier.
Il y a plusieurs tailles :
- la taille apparente, c'est le nombre d'octets qu'on peut lire
- la taille sur disque, c'est l'espace occupé par la représentation du fichier dans le système de fichiers
- atime :date de la dernière lecture.
- mtime :date de la dernière modification.
- ctime :date de la dernière connexion.
Connexion? à quoi?