ls -d命令在linux终端中代表什么?

时间:2015-04-30 08:16:38

标签: linux bash shell ls

当我在终端输入 ls -l -d root 中的当前工作目录时,显示

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

但当我在其他当前目录中时,假设它是 / usr / / usr / bin / ,那么输出也与之前相同,只需更改一些像filesize,id,date这样的东西。

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以及为什么它在每个不同的目录中显示最可能相同的输出?

3 个答案:

答案 0 :(得分:2)

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

  • .当前目录的相对引用

  • ..目录的相对引用

由于您正在添加-d标记,因此它会列出目录本身,而不是其内容。见ls --help

  

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

答案 1 :(得分:1)

-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

答案 2 :(得分:0)

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

如果你有subdirectories,它只会显示子目录的名称,而不会显示子目录中的所有文件。 并且链接也不会跟随。所以你要看到你调用ls -d。

的目录中的条目