Où les noms de fichiers sont-ils stockés sur un système de fichiers?

44

Où les noms de fichiers sont-ils stockés sur un système de fichiers?

Ce n'est pas dans inode ni dans le contenu du fichier puisque nous avons un lien physique qui indique que deux noms de fichier peuvent pointer vers le même inode.

Yegle
la source
4
À proprement parler, cela dépend entièrement du système de fichiers dont vous parlez. Tous n'ont pas d'inodes (ni même de répertoires).
Michael Borgwardt
NTFS ou FAT12 / 16/32 et beaucoup d'autres systèmes de fichiers n'ont pas d'inode
phuclv
De nombreux fichiers ont plus d'un nom dans plusieurs répertoires. Tous les fichiers de type répertoire ont au moins 2 noms, l'un d'eux étant .eux-mêmes.
Stéphane Chazelas
@ LưuVĩnhPhúc, ntfs ne .. il l'appelle simplement un enregistrement MFT, mais c'est plutôt un inode.
psusi

Réponses:

61

Je ne trouvais pas de duplicata convenable, alors voici une réponse à votre question.

Noms de fichiers et répertoires

extrait

Noms de fichiers et implications du répertoire:

  • Les inodes ne contiennent pas de noms de fichiers, mais uniquement d'autres métadonnées de fichier.
  • Les répertoires Unix sont des listes de structures d'association, chacune contenant un nom de fichier et un numéro d'inode.
  • Le pilote du système de fichiers doit rechercher dans un répertoire la recherche d'un nom de fichier particulier, puis convertir le nom de fichier en un numéro d'inode correspondant.

Source: page Wikipedia sur Inode

Le nom du fichier est donc stocké dans la structure d’information des répertoires. Par exemple:

                         ss de fs

Structure du répertoire

extrait

Dans le système de fichiers EXT2, les répertoires sont des fichiers spéciaux utilisés pour créer et conserver des chemins d'accès aux fichiers du système de fichiers. La figure 9.3 illustre la disposition d'une entrée de répertoire en mémoire.

Un fichier de répertoire est une liste d'entrées de répertoire, chacune contenant les informations suivantes:

  • inode - L'inode pour cette entrée de répertoire. Il s'agit d'un index dans le tableau d'inodes contenu dans la table d'inodes du groupe de blocs. Dans la figure 9.3, l’entrée de répertoire pour le fichier appelé fichier a une référence au numéro d’inode i1,
  • name length - La longueur de cette entrée de répertoire en octets,
  • name - Le nom de cette entrée de répertoire.

Les deux premières entrées pour chaque répertoire sont toujours la norme .et les ..entrées correspondant respectivement à "ce répertoire" et "le répertoire parent".

Voici les références de la figure 9.3 ci-dessus:

                 SS n ° 2

Source: Le projet de documentation Linux: Système de fichiers

Les références

slm
la source
9

Le nom du fichier est enregistré dans le répertoire correspondant ("fichier de répertoire"). Cette entrée pointe vers un inode.

Hauke ​​Laging
la source
1
Je ne vois pas comment les cibles des liens symboliques pourraient se retrouver dans les entrées du répertoire. La cible du lien symbolique peut être trouvée dans l'inode du lien symbolique, mais pas dans l'entrée de répertoire à laquelle le lien symbolique est lié, cela n'aurait aucun sens.
Stéphane Chazelas
@ StéphaneChazelas, le lien symbolique lui-même contient simplement un autre nom qui devrait être ouvert à la place. La recherche de nom recommence sur le nouveau nom, qui (s'il existe du tout) est une entrée de répertoire quelque part.
psusi
1

Le nom de fichier est stocké dans la structure de données "répertoire" qui a "(nom de fichier)" et le "inode (int)" correspondant. Le répertoire est responsable de la correspondance du nom de fichier -> inode. et in ode est responsable du mappage inode -> secteur sur le disque.

JustVirtually
la source