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