`ls --directory` 代表什么?

Pau*_*rro 17 command-line ls

在我的 Ubuntu 版本中, man ls 有关于 --directory 的下一个信息:

list directory entries instead of contents, and do not dereference symbolic links
Run Code Online (Sandbox Code Playgroud)

所以我有点困惑它是如何工作的。我使用了这个命令ls --directory,我希望有一个包含所有目录的列表,但我得到了.

那么究竟做什么ls --directoryls -d做什么?

Zan*_*nna 24

$ man ls
...
-d, --directory
              list directories themselves, not their contents
Run Code Online (Sandbox Code Playgroud)

当前目录被表示为.所以这ls -d就是列表。

当前目录中的目录是目录的内容,因此不显示此选项。

我使用-d别名中的选项来显示隐藏的文件和目录

alias l.='ls -dC .* --color'
Run Code Online (Sandbox Code Playgroud)

如果没有-d,这也会列出隐藏目录的内容,这不是我想要的。

它的另一个用途是当我想使用该-l选项查看目录的元数据时,而不是其内容:

$ ls -ld playground
drwxr-xr-x 72 zanna zanna 12288 Mar  1 23:10 playground
Run Code Online (Sandbox Code Playgroud)

如果您想要当前目录中的目录列表,您可以使用

ls -d */
Run Code Online (Sandbox Code Playgroud)


Pil*_*ot6 11

ls只使用with-d几乎没用。它提供有关目录本身的信息。它没有列出其内容。

这就是为什么您看不到目录列表的原因。您希望看到的目录是当前目录的“内容”

如果您简单地运行,ls -d它会显示当前目录.

如果使用其他键运行它是有意义的,例如-l.

ls -ld 将显示当前目录的权限。

pilot6@Pilot6:~$ ls -ld
drwxrwxr-x 1 pilot6 pilot6 2570 Mar  4 12:14 .
Run Code Online (Sandbox Code Playgroud)

您还可以查看任何其他目录的权限,例如

ls -ld /bin

pilot6@Pilot6:~$ ls -ld /bin
drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin
Run Code Online (Sandbox Code Playgroud)

如果不运行ls -l-d您将拥有当前目录中文件和文件夹的所有权限列表。如果您不需要它,这是一个很好的ls -ld用法示例。

您可以通过以下方式列出当前目录中的目录

ls -d */
Run Code Online (Sandbox Code Playgroud)


Win*_*nix 6

单独使用ls -d是相当无用的,因为没有参数它总是返回.. 在你指定一个参数之后,它是有道理的。例如,如果您的用户名是rick并且您想查看家庭使用的所有目录:

$ ls -d /home/rick/*/
/home/rick/AAC/        /home/rick/EnhanceIO/         /home/rick/silentcast/
/home/rick/assembly/   /home/rick/EnhanceIO-master/  /home/rick/Templates/
/home/rick/bin/        /home/rick/log/               /home/rick/test/
/home/rick/Desktop/    /home/rick/Music/             /home/rick/tmpe/
/home/rick/Documents/  /home/rick/Pictures/          /home/rick/Videos/
/home/rick/Downloads/  /home/rick/Public/
Run Code Online (Sandbox Code Playgroud)


Geo*_*sen 5

让我用例子来解释:

  1. ls: 列出目录的内容

  2. ls -dls --directory: 列出目录本身,而不是它们的内容

例子:

ls -d android-sdk-linux/

# result
android-sdk-linux/

ls android-sdk-linux/

# result
add-ons  build-tools  platforms  platform-tools  SDK Readme.txt  temp  tools
Run Code Online (Sandbox Code Playgroud)

你的例子是ls -dlist只显示我所在的目录而不是它的内容(即.在 Linux 术语中),所以结果是:..

但是,如果您说:ls,那么您将看到当前目录中存在的所有内容.