GNU/Linux >> Tutoriels Linux >  >> Linux

vidage octal du répertoire

Chaque type de système de fichiers stocke les répertoires d'une manière différente. Il existe de nombreux types de systèmes de fichiers différents avec des caractéristiques différentes - bon pour un débit élevé, bon pour une concurrence élevée, bon pour les environnements à mémoire limitée, différents compromis entre les performances de lecture et d'écriture, entre la complexité et la stabilité, etc. Votre livre décrit un système de fichiers utilisé au début systèmes Unix. Les systèmes modernes prennent en charge de nombreux systèmes de fichiers différents.

Les toutes premières versions d'Unix comportaient de nombreuses manipulations du système de fichiers en dehors du noyau. Par exemple, mkdir et rmdir travaillé en éditant directement certaines structures de données du système de fichiers. Cela a été rapidement remplacé par une interface d'accès aux répertoires uniforme, le opendir /readdir /closedir famille, qui permettait aux applications de manipuler des répertoires sans avoir à savoir comment ils étaient implémentés sous le capot.

La raison pour laquelle vous ne pouvez pas lire le contenu des répertoires sous Linux n'est pas parce qu'ils doivent être cachés, mais parce que les fonctionnalités n'existent que si elles sont implémentées, et cette fonctionnalité est inutile et a un coût. Étant donné que le format dépend du système de fichiers, c'est une fonctionnalité plutôt inutile :un programme ne peut pas connaître le format de ce qu'il lit. Ce n'est pas non plus une fonctionnalité complètement triviale à prendre en charge :certains systèmes de fichiers organisent les répertoires de manière à ne pas être simplement un flux d'octets, par exemple, ils peuvent être organisés en arbre B. Certaines variantes d'Unix permettent toujours aux applications de lire directement le contenu des répertoires, pour une compatibilité descendante, mais Linux n'a pas cette fonctionnalité (et n'en a jamais eu pour autant que je m'en souvienne - c'était déjà une fonctionnalité obsolète au début des années 1990).


Oui, mais :

  • les systèmes modernes stockent les noms de fichiers différemment. Dans Unix d'origine, les noms étaient limités à 14 caractères, avec 2 octets pour l'inode.
  • l'interface avec le répertoire se fait via les fonctions opendir , readdir , closedir plutôt que open , read , close pour refléter le changement d'organisation.
  • parce que personne n'a besoin de lire des entrées de répertoire de 16 octets, les concepteurs ont omis la possibilité de lire des fichiers de répertoire bruts à partir de programmes conçus pour lire des fichiers .

Lectures complémentaires :

  • Tutoriel :Programmation en C avec des répertoires sous Linux
  • question sur opendir, readdir, etc., fil Usenet en 1990 discutant du moderne implémentation de opendir , etc.

Linux
  1. Linux - Exécuter Vs Lire Bit. Comment fonctionnent les autorisations de répertoire sous Linux ?

  2. Comprendre les Si ?

  3. Problème de système de fichiers en lecture seule ?

  4. répertoire de vidage de mémoire configurable par processus

  5. Comment créer un répertoire temporaire en C++ ?

Commande Du sous Linux

Commande mv sous Linux

Comment lire un fichier avec des espaces sous Linux

Un guide du débutant pour naviguer dans le système de fichiers Linux

Comment sauvegarder le système de fichiers Linux à l'aide de la commande dump

Bit d'exécution vs de lecture. Comment fonctionnent les autorisations de répertoire sous Linux ?