![为什么“ls -l /bin”命令只显示 1 个文件?](https://linux22.com/image/1186305/%E4%B8%BA%E4%BB%80%E4%B9%88%E2%80%9Cls%20-l%20%2Fbin%E2%80%9D%E5%91%BD%E4%BB%A4%E5%8F%AA%E6%98%BE%E7%A4%BA%201%20%E4%B8%AA%E6%96%87%E4%BB%B6%EF%BC%9F.png)
该ls /bin
命令显示了许多文件。我需要获取详细列表。但是该ls -l /bin
命令仅显示 1 个文件。
请告诉我,出了什么问题?
答案1
没有什么是错的。
/bin
是指向 的符号链接/usr/bin
。
当您使用该ls /bin
命令时,将跟踪符号链接,并显示/usr/bin
(符号链接指向的位置)的内容。
但是,使用该ls -l /bin
命令时,不会跟踪符号链接,而只显示符号链接本身。
--dereference-command-line-symlink-to-dir
可以在 ls texinfo 文档中的选项下找到原因(info ls
或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’)).
在此背景下-l
,“其他与取消引用相关的选项”并关闭该行为。
如果您使用ls -lH /bin
,您告诉命令专门跟踪符号链接,现在您(正确地)看到的内容/usr/bin
。
/bin
作为一个符号链接,/usr/bin
遵循用户合并该软件包于 2019 年在 Debian 10 中引入,并被 Ubuntu 的后续版本所采用。