8 votes

Pourquoi la commande "ls -l /bin" ne montre-t-elle qu'un seul fichier ?

El ls /bin montre de nombreux fichiers. J'ai besoin d'obtenir une liste détaillée. Mais la ls -l /bin ne montre qu'un seul fichier.

Dites-moi, s'il vous plaît, ce qui ne va pas ?

20voto

Artur Meinild Points 5704

Tout va bien.

/bin est un lien symbolique qui pointe vers /usr/bin .

Lorsque vous utilisez le ls /bin le lien symbolique est suivi, et le contenu du fichier /usr/bin (où le lien symbolique pointe).

Cependant, avec le ls -l /bin le lien symbolique n'est pas suivi, et seul le lien symbolique lui-même est affiché.

La raison peut être trouvée sous la rubrique --dereference-command-line-symlink-to-dir dans la documentation ls texinfo ( info ls o info coreutils 'ls invocation' ):

‘--dereference-command-line-symlink-to-dir’
     Do not dereference symbolic links, with one exception: if a command
     line argument specifies a symbolic link that refers to a directory,
     show information for that directory rather than for the link
     itself.  This is the default behavior when no other
     dereferencing-related option has been specified (‘--classify’
     (‘-F’), ‘--directory’ (‘-d’), (‘-l’), ‘--dereference’ (‘-L’), or
     ‘--dereference-command-line’ (‘-H’)).

Dans ce contexte, -l est un "autre option liée au déréférencement" et désactive le comportement.

Si vous utilisez ls -lH /bin vous indiquez à la commande de suivre spécifiquement les liens symboliques, et maintenant vous voyez (correctement) le contenu du fichier /usr/bin .

/bin étant un lien symbolique vers /usr/bin suit le UsrMerge qui a été introduit dans Debian 10 en 2019, et donc adopté par les versions suivantes d'Ubuntu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X