【问题标题】:What does ls -d command stand for in linux terminal? [closed]ls -d 命令在 linux 终端中代表什么? [关闭]
【发布时间】:2015-04-30 08:16:37
【问题描述】:

当我在终端中键入 ls -l -d 并在 root 中键入当前工作目录时,它会显示

root@devils-ey3:~# ls -l -d
drwxrwxr-x 57 root root 4096 Apr 30 11:16 .

但是当我在其他当前目录时假设它是 /usr//usr/bin/ 那么输出也和以前一样只是改变一些诸如文件大小、id、日期之类的东西。

root@devils-ey3:/usr/bin# ls -l -d
drwxr-xr-x 2 root root 118784 Apr 29 23:10 .

我看了ls -d的文档。它写

-d, --directory            list directory entries instead of contents,
                               and do not dereference symbolic links

我很困惑为什么我们使用 ls -d 以及为什么它在每个不同的目录中显示最有可能相同的输出?

【问题讨论】:

  • 尝试指定一个目录作为参数,例如ls /ls -d /。甚至几个目录,例如ls / /bin/ /etc/ls -d / /bin/ /etc/.
  • 我投票结束这个问题,因为它不是一个编程问题,更适合unix.stackexchange.com
  • 在你关闭它之前,我想知道他正在使用什么发行版,这样我就可以避免它。任何带有损坏的man page 安装的发行版都是我想要远离的东西......说真的,-d 的唯一痛苦是它没有做你想要的。好吧,那只是因为您没有正确使用它。正如答案所示,您必须告诉它查找子目录而不是当前目录(无聊的结果)。所以要找到潜艇:ls -d /*

标签: linux bash shell ls


【解决方案1】:

在 Linux(或一般的类 UNIX 系统)中,所有目录都包含以下条目:

  • . 是对当前目录的相对引用

  • ..是对目录的相对引用

由于您添加了-d 标志,它将列出目录本身,而不是其内容。见ls --help

-d 列出目录条目而不是内容,并且不要取消引用符号链接

【讨论】:

  • 其实是-a显示隐藏文件。
  • @GeraldSchneider 非常正确,谢谢。
【解决方案2】:

-d 开关本质上是说“我对目录本身感兴趣,而不是它的内容”。见:

$ mkdir foo
$ touch foo/bar
$ ls -l foo # show me detailed info about the contents of “foo”
-rw-r--r--  1 zoul  staff     0B Apr 30 10:20 bar
$ ls -ld foo # show me detailed info about “foo” itself
drwxr-xr-x  3 zoul  staff   102B Apr 30 10:20 foo

【讨论】:

    【解决方案3】:

    如文档所述:list directory entries instead of contents,

    如果您有subdirectories,它只会显示子目录的名称,而不是子目录中的所有文件。 也不会遵循链接。所以你只能看到你调用 ls -d 的目录中的条目。

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 2020-10-09
      • 2021-01-11
      • 2020-09-19
      • 1970-01-01
      • 2021-09-17
      • 2012-09-06
      • 1970-01-01
      • 2023-01-28
      相关资源
      最近更新 更多