================== =========================================================== =================================================================== CETTE PAGE - SOUS UNE FORME RÉVISÉE - A ÉTÉ TRANSFÉRÉE À L'ADRESSE SUIVANTE :
http://wiki.mandriva.com/fr/La_commande_ls
NOUS VOUS CONSEILLONS DE VOUS Y RENDRE… ==================================================================
La commande ls
- 1 Introduction
- 2 Le minimum minimorum à connaître pour utiliser ls
- 3 Afficher les fichiers et répertoires qui sont à la racine d'un répertoire
- 4 Ce que vous avez toujours rêvé de savoir sur 'ls'
- 5 ls et l'expansion des noms de fichiers
- 6 Les détails de l'affichage de ls
Navigation :
Page précédente : L'éditeur de commandes (shell) VII
Page suivante : CP-1 : la copie de fichiers ou de répertoires
Toutes les pages sur le shell - Index de la section - Index de la Base de Connaissances
Introduction
La commande 'ls' est sans doute la commande la plus connue et la plus fréquemment invoquée par les utilisateurs de systèmes Linux. Même les plus rebelles à la ligne de commande auront sans doute inspecté, un jour ou l'autre, par son entremise, le contenu de tel ou tel répertoire. Cette page de la Base de Connaissances de Mandriva essaie de vous faire comprendre les mécanismes de son fonctionnement, afin que vous ne vous contentiez pas de taper mécaniquement une ou deux lignes de commandes standards contenant 'ls', sans trop savoir ce que vous faites.
Cela dit, si vous voulez vous cantonner au strict minimum, peut-être cette première section vous suffira-t-elle.
Si vous voulez en savoir un tout petit peu plus sur l'affichage du contenu d'un répertoire par 'ls' lisez ensuite cette section-ci.
Enfin, si vous voulez en savoir encore plus, lisez tout ce qui suit à la file…
Le minimum minimorum à connaître pour utiliser ls
Afficher les fichiers et répertoires qui sont à la racine d'un répertoire
Ce que vous avez toujours rêvé de savoir sur 'ls'
Cette section résume, de façon compacte et un peu 'abstraite' un certain nombre de points essentiels pour qui veut vraiment comprendre le fonctionnement de notre commande. Des exemples d'emploi plus "concrets" sont donnés dans la section précédente.
Quels arguments peut prendre ls
- ls peut prendre comme argument :
- un nom de fichier
ls -l abricots.txt
-
- un nom de répertoire
ls -l recettes/
-
- une combinaison de noms fichiers et/ou de noms répertoires (dans n'importe quel ordre)
ls -l abricots.txt recettes/ figue.txt
- ls peut aussi n'avoir aucun argument apparent
ls -l
Ce que ls fait de ses arguments
- lorsqu'on lui passe un nom de répertoire en guise d'argument 'ls' énumère tous les fichiers ou sous-répertoires situés à la racine de ce répertoire [du moins en l'absence de l'option '-d' (voir plus bas) ]
- lorsqu'on lui passe un nom de fichier en guise d'argument 'ls' affiche simplement le nom de ce fichier (avec, en plus, ses propriétés si l'option '-l' a été tapée dans la ligne de commande).
Ce que ls fait en l'absence d'argument
Lorsque 'ls' est lancée sans qu'aucun argument ne figure sur la ligne de commande, tout se passe alors comme si on lui avait fourni le répertoire point (.) en guise d'argument (le répertoire point représente le répertoire de travail courant).
'ls' énumère donc alors tous les fichiers ou répertoires situés à la racine du répertoire de travail [ du moins en l'absence de l'option -d (voir plus bas) ].
Des 'formules' telles que les suivantes sont donc valides, comme vous pourrez le vérifier aisément en tapant tour à tour les deux 'versions' figurant sur chacune des lignes suivantes :
ls = ls .
ls -l = ls -l .
ls -dl = ls -dl .
etc.
Le comportement de ls employée sans options
Employée sans options, 'ls' affiche uniquement des noms de fichiers ou de sous-répertoires, classés par ordre alphabtétique et répartis en colonnes dont le nombre, variable, dépend de la longueur des noms affichés et de la taille de la fenêtre de console.
Lorsque la sortie de 'ls' est redirigée vers un fichier via un opérateur de redirection ou vers une autre commande via un tube, chaque nom de fichier ou de sous-répertoire à la sortie de 'ls' occupe, en revanche, une ligne à lui seul (il est facile de le vérifier en faisant ls | cat ou ls > ls.txt et ensuite, dans ce dernier cas, cat ls.txt).
Le rôle de quelques-unes des options de ls
L'option l
Employée avec l'option '-l' (la lettre L minuscule), la commande 'ls' affiche non seulement des noms de fichiers et de sous-répertoires, mais aussi, pour chacun d'eux, un ensemble de propriétés, que vous trouverez énumérées dans la cible du lien qui constitue le contenu de la section précédente. Un nom de fichier, ou de sous-répertoire, avec l'ensemble de ses propriétés, occupe toujours une ligne de l'écran.
En outre, cette option provoque aussi l'affichage d'une ligne initiale de la forme :
total nombre
L'option a
L'option '-a' permet d'afficher les fichiers cachés.
Les options F et color
Les options '-F' et '--color' permettent de donner des indications 'visuelles' sur le type des éléments affichés.
La distribution Mandriva active par défaut ces deux options par l'entremise d'un alias défini dans le fichier de configuration du shell /etc/profile.d/alias.sh.
L'option F
Vous trouverez un exemple d'utilisation de '-F' pour afficher uniquement des répertoires cachés dans l'encart final de cette sous-section.
L'option color
Le choix des couleurs attribuées aux noms de fichiers et de répertoires lorsque l'option '--color' est activée est déterminé par le fichier /etc/DIR_COLORS ou éventuellement par le fichier ~/.dir_colors (~ représente le répertoire personnel de l'utilisateur, comme vous le savez...). Lisez ces fichiers pour comprendre le codage de couleurs employé. Si vous souhaitez modifier ces couleurs, voyez la section Comment modifier les couleurs des listes de fichiers affichés par ls.
L'option d
Pour obtenir l'affichage des sous-répertoires sans l'affichage de leur contenu vous devez employer l'option '-d' :
ls \-d confitures/ confitures/ ls -ld confitures/ drwx------ 2 toto toto 4096 fév 7 2006 confitures/
ls -d abricots.txt abricots.txt
ls abricots.txt abricots.txt
ls -d fichier = ls fichier
et
ls -ld fichier = ls -l fichier.
Paresseux comme nous sommes, à quoi bon, dans ce cas, taper '-d' avec un fichier en argument ? En dépit des apparences, ceci est utile car cela permet de fournir à 'ls' en argument, sur une même ligne, et des fichiers et des répertoires :
ls -ld fichier1 répertoire1 fichier2 -rw-r--r-- 2 toto toto 75222 oct 8 2006 fichier1 -rw-r--r-- 2 toto toto 30998 oct 10 2006 fichier2 drwx------ 2 toto toto 4096 fév 7 2006 répertoire1/
L'expansion des noms de fichiers permet de donner facilement comme arguments à une commande des fichiers et des sous-répertoires. Il est donc compréhensible que l'option -d soit fréquemment utilisée dans ce genre de contexte.
Vous trouverez des exemples d'emploi de l'expansion des noms de fichier avec l'option -d de la commande 'ls' plus bas et aussi dans la section Affichage des fichiers et répertoires cachés.
Pour diverses précisions supplémentaires concernant l'affichage des noms de répertoires à la sortie de 'ls' lorsque celle-ci est employée avec l'option -d, voir la sous-section sur les détails de l'affichage de ls.
L'option t
Remplace le classement par ordre alphabétique par un classement chronologique, pour un exemple, voir ici.
L'option r
Cette option inverse le classement par défaut, quel qu'il soit (alphabétique ou chronologique, selon qu'on a ou pas choisi aussi l'option -t). Pour un exemple, voir ici.
Attention, bien employer un r minuscule (l'option R majuscule existe aussi, voir plus bas...).
L'option i
Cette option impose l'affichage du 'numéro d'inode' de chaque fichier ou répertoire affiché (sous Linux, tout fichier ou répertoire est connu par le système par ce numéro, qui lui est propre). Pour une utilisation, relative aux liens en durs, voir cette section.
L'option R
Attention : il s'agit bien d'un R majuscule (l'option r existe aussi ! voir ci-dessus).
Par défaut, nous le savons, 'ls' affiche la liste des fichiers ou sous-répertoires qui sont à la racine du répertoire qui lui est passé en argument (ou du répertoire de travail). L'option -R a pour effet de rendre 'ls' 'récursive' : autrement dit seront affichés aussi les contenus de tous les sous-répertoires du répertoire argument de ls.
Pour diverses précisions supplémentaires concernant l'affichage des noms de répertoires à la sortie de 'ls' lorsque celle-ci est employée avec l'option -R, voir la sous-section sur les détails de l'affichage de ls.
Autres options
Bien d'autres options existent, dont certaines peuvent modifier les comportements par défaut décrits ci-dessus : consultez man ou info pour en avoir la liste et la description.
ls et l'expansion des noms de fichiers
Au lieu d'un argument ou d'un ensemble d'arguments entièrement 'spécifiés', on peut aussi fournir à 'ls' des arguments qui font appel aux ressources de l'expansion des noms de fichiers. Nous donnerons deux exemples, mais toute sorte d'autres emplois sont possibles.
ls -d ressources/[1-9]* ressources/1123.txt ressources/234ght ressources/3choin/ ressources/5leviers.txt
ls -d ressources/*.?/ ressources/japhari.c/
Vous trouverez d'autres exemples d'emploi de l'expansion des noms de fichier avec la commande 'ls' à la section Affichage des fichiers et répertoires cachés.
Les détails de l'affichage de ls
Noms de base ? chemins ?
Nous abordons ici des questions qui sont sans grande importance dans le cadre d'un usage courant de 'ls' en console mais qu'il peut être indispensable de bien comprendre quand on souhaite utiliser 'ls' dans le cadre d'une redirection des sorties et/ou dans un script, dans des situations où sa sortie est passée à un autre programme pour recevoir un traitement précis.
Le premier point à noter est que lorsque vous passez à 'ls' un nom de répertoire en argument, vous obtiendrez par défaut à l'affichage des noms de base de fichiers ou de répertoires et non pas des chemins, et ceci quelle que soit la façon dont vous ayez représenté le répertoire en tapant la commande.
Par exemple, si votre répertoire de travail est un répertoire /home/toto/ contenant un sous-répertoire /home/toto/confitures/, vous obtiendrez exactement le même affichage dans les différents cas suivants :
ls confitures/
ls ./confitures/
ls /home/toto/confitures/
MAIS :
- Si vous passez à 'ls' un nom de fichier en argument, alors elle préfixera à sa sortie le chemin du fichier tel que vous l'aurez tapé dans la commande !
- Et il en ira de même pour un répertoire passé en argument lorsque vous utiliserez l'option -d (option qui oblige 'ls' à traiter un répertoire un peu comme elle traiterait un fichier).
ls abricots.txt abricots.txt
ls ./abricots.txt ./abricots.txt
ls /home/toto/confitures/abricots.txt /home/toto/confitures/abricots.txt
Et en passant comme argument un sous-répertoire confitures/ avec l'option -d :
ls -d confitures/ confitures/
ls -d ./confitures/ ./confitures/
ls -d /home/toto/confitures/ /home/toto/confitures/
Nota Bene : Souvenez-vous qu'employée sans argument apparent 'ls' se comporte comme si on avait tapé le point en guise d'argument, ce que vous pourrez vérifier aisément en exécutant ls -d ou ls -dl
- Enfin avec l'option -R, les noms de sous-répertoires seront eux aussi préfixés par le chemin que vous aurez tapé pour le répertoire passé en argument.
Une ou deux barres obliques après un nom de répertoire, ou même aucune ?
Si vous avez soigneusement tenté de vérifier sur votre système que les indications données ici, notamment à la sous-section précédente, fonctionnent bien comme prévu, vous avez peut-être remarqué, que, parfois, là où nous avons mis une barre oblique finale, vous obtenez DEUX barres obliques, par exemple au lieu de ceci :
ls -d confitures/ confitures/
ls -d confitures/ confitures//
Bogue de Mandriva ?? Non, non...
La première barre oblique (bleue) vient de votre frappe : vous avez choisi d'écrire une barre oblique à la fin du nom du répertoire, ce qui n'est pas obligatoire, si vous l'omettez la barre bleue disparaît et vous obtenez une unique barre oblique (blanche) :
ls -d confitures confitures/
D'où vient donc la barre oblique blanche qui subsiste ??
De l'option -F, bien sûr !! qui est présente par défaut quoiqu'invisible, à cause d'un alias de Mandriva (voir plus haut). Si vous lancez 'ls' 'à l'état pur' dans sa version non aliassée (par exemple, en tapant 'ls' entre guillemets simples, tout en rétablissant la couleur pour y voir plus clair...), 'ls' sera exécutée sans l'option '-F' et vous obtiendrez cette fois une unique barre oblique bleue...
'ls' -d \-\-color=auto confitures/ confitures/
et, bien sûr, si vous ne tapez pas la barre dans la commande, alors vous n'aurez plus aucune barre dans la sortie :
'ls' -d \-\-color=auto confitures confitures
- la première (bleue par défaut) est celle que vous avez tapée en ligne de commande
- la seconde (blanche) est due à l'activation de l'option '-F'.
Auteur: ptyxs (mai 2006)
Legal: This page is covered by the GNU Free Documentation License. Standard disclaimers of warranty apply. Copyright LSTB and Mandrakesoft.
Document data
- Lost account?
- Join the community, be part of the Club: it's free!
- Get the PWP Download Subscription!
fichier régulier exécutable : *
répertoire : /
lien symbolique : @
tube nommé : |
socket : =