A la racine...
Un article de Wiki de la communauté Mandriva.
CETTE PAGE EST UNE VERSION RÉVISÉE DE LA PAGE MAINTENANT OBSOLÈTE DE L'ANCIENNE BASE DE CONNAISSANCES :
http://club.mandriva.com/xwiki/bin/view/KB/ATtheROOT ptyxs 24 février 2008 à 15:05 (CET)
[modifier] Ce que signifie l'expression « être à la racine d'un répertoire »
Un fichier ou un répertoire A est dit à la racine (anglais at the root) du répertoire B quand A est placé immédiatement sous B dans l'arborescence du système de fichiers.
Autrement dit, A n'est inclus dans aucun sous-répertoire de B (à l'exception de B lui-même, si B est considéré comme un sous-répertoire de lui-même...oh là là, ça commence mal...).
Le chemin de A est alors de la forme : ...B/A.
[modifier] Illustration
Voici un fragment, très incomplet, de mon système de fichiers Linux (un fragment de son « arborescence », comme on dit, vous voyez que cela ressemble bien à un arbre, à l'envers il est vrai... avec la racine tout en haut !) :
Le répertoire toto est à la racine de home.
Le fichier Marie.png est à la racine du répertoire toto (et il n'est évidemment pas à la racine de home bien qu'il fasse partie de ce dernier répertoire...).
Les répertoires /bin, /proc et /sys sont à la racine du système de fichiers Linux (autrement dit, ils sont à la racine du répertoire /).
Il est vrai que, le plus souvent, on ne repère pas, dans les documentations usuelles, un fichier ou un répertoire avec un dessin d'arborescence, comme nous venons de le faire. On repère la position d'un fichier ou d'un répertoire à l'aide d'un chemin (anglais path).
Et là c'est très simple : chaque fichier ou répertoire d'un chemin est à la racine du répertoire qui le précède immédiatement dans le chemin, comme nous allons le voir à la section suivante...
[modifier] Exemples de chemins absolus
Le chemin complet, absolu, de toto, qui est à la racine de home, est :
/home/toto
Et le chemin complet, absolu, de Marie.png, qui est à la racine de toto, est :
/home/toto/Marie.png
Enfin, le chemin du répertoire home est :
/home
home est donc à la racine du système de fichiers Linux, à la racine du répertoire racine /...
[modifier] Le répertoire racine
Le répertoire / est souvent appelé : répertoire racine du système de fichier.
[modifier] Afficher les fichiers et sous-répertoires qui sont à la racine d'un répertoire
[modifier] Dans une interface graphique
Les navigateurs de fichiers sont typiquement des instruments qui permettent de visualiser le contenu des différents répertoires d'un système de fichiers. C'est par exemple le cas de Konqueror, sous l'interface graphique KDE.
Ouvrez Konqueror et pressez la touche F9 : dans la fenêtre qui apparaît alors, les répertoires sont signalés par une icône caractéristique, en forme de « classeur ».
En faisant un clic gauche sur un répertoire de la partie gauche de la fenêtre de Konqueror, vous verrez apparaître dans la partie droite les fichiers et sous-répertoires situés à la racine du répertoire sur lequel vous venez de cliquer.
Par défaut, seuls seront affichés les fichiers et répertoires non cachés. Pour voir et les fichiers ou répertoires cachés et les fichiers et répertoires non cachés, vous devez dérouler le menu Affichage et sélectionner Afficher les fichiers cachés.
Pour développer l'arborescence et naviguer jusqu'à des sous-répertoires encore invisibles car plus profondément « enfouis », cliquez, dans la partie gauche de la fenêtre, sur le petit signe + qui précède l'icône d'un répertoire lorsqu'il contient lui-même des sous-répertoires. Vous verrez alors apparaître les sous-répertoires situés à la racine du répertoire que vous venez de « développer » et vous pourrez continuer ainsi autant qu'il sera nécessaire pour parvenir au point de l'arborescence qui vous intéresse.
Des manœuvres voisines existent dans tout autre navigateur de fichiers.
[modifier] Avec la commande ls
[modifier] Afficher les fichiers et répertoires non cachés
Pour afficher les fichiers et les sous-répertoires non cachés qui sont situés à la racine d'un répertoire, une possibilité est d'utiliser la commande ls. Pour l'affichage des fichiers cachés à la sortie de ls, voir #Afficher les fichiers et répertoires cachés et non cachés et #Afficher uniquement les fichiers et répertoires cachés.
[modifier] Avec ls sans option
La ligne de commande :
affiche sur plusieurs colonnes les noms (mais pas les chemins complets) de chacun des éléments de contenu (non cachés) situés à la racine du répertoire /home/toto/confitures/.
Dans la ligne de commande qui précède, on a désigné le répertoire par son chemin absolu (le chemin complet, commençant par le répertoire racine : /home/toto/confitures/). On peut aussi utiliser un chemin relatif. Par exemple, si votre répertoire de travail est votre répertoire personnel /home/toto/, vous pouvez aussi écrire la commande ainsi :
et comme vous le voyez vous obtenez le même résultat dans les deux cas.
Dans les emplois de la commande ls qui précèdent, l'affichage se fait en colonnes. ls maximise le nombre des colonnes en fonction de la longueur des noms de fichiers à afficher et de la largeur de la fenêtre de console afin de disposer le plus grand nombre de noms de fichiers sur une seule ligne. Toutefois, si la sortie de ls est redirigée vers un autre programme par un tube (|) ou vers un fichier par un opérateur de redirection (> ou >>), alors chaque nom de fichier affiché par ls occupe à lui seul une seule ligne de la sortie. Vous pourrez le vérifier en tapant, par exemple, des commandes comme :
ou
Cette différence peut sembler mineure dans le cadre d'un usage courant, néanmoins, si vous utilisez ls dans un enchaînement complexe de commandes, dans un script, par exemple, il peut être indispensable de la garder bien présente à l'esprit.
[modifier] Avec l'option -l
Pour obtenir un affichage ligne par ligne, avec une représentation de nombreuses propriétés de chaque fichier ou sous-répertoire affiché, vous utiliserez l'option -l.
Les propriétés affichées seront, de gauche à droite :
- type de fichier
- nombre de liens en dur ou de sous-répertoires
- propriétaire
- groupe propriétaire
- taille
- date de dernière modification
- nom
- seulement pour un lien symbolique : fichier vers lequel pointe le lien.
C'est là ce que vous obtiendrez, par exemple, en tapant :
ou (si /home/toto/ est votre répertoire de travail) :
ce qui pourrait donner quelque chose comme :
total 12
-rw-r--r-- 1 toto toto 2028 2008-01-24 14:26 abricot
-rw-r--r-- 1 toto toto 1898 2008-02-19 14:26 poire
-rw-r--r-- 1 toto toto 329 2008-02-24 14:26 pomme
lrwxrwxrwx 1 toto toto 28 2008-02-24 14:27 sucre -> /home/toto/ingredients/sucre
[modifier] Avec l'option -t
Avec l'option -t (t comme le début du mot français temps ou du mot anglais time), les fichiers et répertoires affichés seront classés par ordre de date de dernière modification du plus récent au plus ancien. Par exemple :
[modifier] Avec l'option -r
En ajoutant à -t l'option -r (r de l'anglais reverse qui signifie inverse), le classement se fera par ordre de dernière modification allant du plus ancien au plus récent :
[modifier] Avec ls sans argument
Rappelons enfin que si aucun répertoire n'est fourni en argument à la commande ls, tout se passe comme si l'on avait fourni à la commande votre répertoire de travail (./) en guise d'argument. Les lignes :
et
donnent le même résultat : elles affichent une liste des fichiers et sous-répertoires qui se trouvent à la racine de votre répertoire de travail. Tout comme :
et
qui, grâce à l'option -l, génèrent un affichage ligne à ligne avec tout un ensemble de propriétés énumérées pour chaque élément affiché (voir plus haut la liste de ces propriétés).
[modifier] Afficher les fichiers et répertoires cachés et non cachés
Toutes les commandes qui précèdent ignorent les fichiers cachés. Pour que les fichiers cachés soient aussi affichés, vous devrez simplement leur ajouter à toutes l'option -a. Ceci fait, ce sera bien la totalité des fichiers et sous-répertoires situés à la racine du répertoire sous examen qui seront affichés par ls, qu'ils soient cachés ou non cachés. Vous taperez donc en principe pour cela des commandes ls -a ou ls -la, toutefois...
Sous la Mandriva un alias par défaut permet d'obtenir tous les fichiers, cachés ou non, en tapant la :
ou :
[modifier] Afficher uniquement les fichiers et répertoires cachés
Pour experts de la ligne de commande, les débutants peuvent omettre...
Enfin, vous trouverez à la section sur l'affichage des fichiers et répertoires cachés situés à la racine d'un répertoire comment écrire une ligne de commande qui affichera uniquement les fichiers et/ou les répertoires cachés situés à la racine d'un répertoire…
[modifier] Avec la commande find et « l'action » -prune
Vous obtiendrez une liste des fichiers et sous-répertoires situés à la racine du répertoire /home/toto/confitures/ en tapant ceci :
dans cette ligne de commande, -prune (élaguer en anglais), empêche find d'énumérer le contenu des sous-répertoires de /home/toto/confitures/. C'est donc cette « action » optionnelle qui restreint ici l'affichage aux éléments qui sont à la racine de /home/toto/confitures/.
Le métacaractère (ou joker) étoile (*) ne reconnaît pas le point initial du nom des fichiers ou répertoires cachés. Les fichiers cachés ne figureront donc pas dans la sortie de cette ligne de commande. Pour les techniques permettant d'afficher aussi les fichiers cachés, voir la section sur l'expansion des noms de fichiers et les fichiers ou répertoires cachés.
Si votre répertoire de travail est /home/toto/, vous pourrez obtenir la liste des mêmes éléments en utilisant un chemin relatif :
Vous auriez pu taper aussi ceci (en supposant toujours que /home/toto/ est votre répertoire de travail) :
(rappelons que ./ représente le répertoire de travail)
Si vous comparez nos trois commandes, vous voyez que la façon dont le chemin des fichiers/répertoires trouvés est affiché dépend du libellé exact de la commande.
Bien entendu pour inspecter de visu le contenu de la racine d'un répertoire, la commande ls est d'un emploi plus simple (voir les sections précédentes).
[modifier] Faire une recherche de fichiers et répertoires situés à la racine d'un répertoire donné dont le nom possède certaines caractéristiques
Pour comprendre ce qui suit, notez qu'employée avec l'expansion des noms de fichiers, ls affiche le contenu de tous les sous-répertoires qu'elle rencontre. ls ~/sauv* affichera par exemple le contenu d'un éventuel répertoire ~/sauv_tout/. Pour éviter la prise en compte du contenu des sous-répertoires rencontrés on peut utiliser l'option -d.
Une façon simple de chercher des fichiers ou des répertoires situés à la racine d'un répertoire donné dont les noms possèdent certaines caractéristiques consiste à utiliser la commande ls avec l'option -d et, en argument, des expressions faisant appel à l'expansion des noms de fichiers.
Par exemple, pour trouver tous les fichiers ou répertoires à la racine du répertoire de travail dont les noms commencent par 'sauv', vous taperez :
et vous obtiendrez la liste de tels fichiers ou sous-répertoires, s'il en existe.
Notez que l'option -d permet de restreindre la recherche aux fichiers et sous-répertoires à la racine du répertoire sur lequel porte la recherche - ici le répertoire courant (autrement dit, grâce à cette option le contenu d'éventuels sous-répertoires ne sera pas examiné). Pour plus de détails, voir la section sur l'option -d de la commande ls et celle sur l'utilisation de la commande ls avec l'expansion de noms de fichiers.
Et bien entendu, pour effectuer la même recherche à la racine du répertoire /home/toto/confitures/, vous auriez tapé :
Pour restreindre la recherche à des sous-répertoires (en excluant les fichiers) vous taperez une barre oblique à la fin de l'argument. Ainsi cette commande ne cherchera que les noms de sous-répertoires à la racine du répertoire de travail qui commencent par sauv :