当前位置: 首页>>技术教程>>正文


“ls –directory” 代表什么?

,

问题描述

在我的 Ubuntu 版本中,man ls 包含有关 –directory 的以下信息:

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

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

那么 ls --directoryls -d 到底有什么作用?

最佳回答

$ man ls
...
-d, --directory
              list directories themselves, not their contents

当前目录表示为 .,因此这就是 ls -d 列出的内容。

当前目录内的目录是该目录的内容,因此不会使用此选项显示。

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

alias l.='ls -dC .* --color'

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

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

$ ls -ld playground
drwxr-xr-x 72 zanna zanna 12288 Mar  1 23:10 playground

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

ls -d */

次佳回答

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

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

如果您仅运行 ls -d ,它会通过 . 显示当前目录。

如果使用其他键(例如 -l )来运行它是有意义的。

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

pilot6@Pilot6:~$ ls -ld
drwxrwxr-x 1 pilot6 pilot6 2570 Mar  4 12:14 .

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

ls -ld /bin

pilot6@Pilot6:~$ ls -ld /bin
drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin

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

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

ls -d */

第三种回答

单独使用 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/

第四种回答

让我用例子来解释一下:

  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

您的 ls -d 案例表示仅列出我所在的目录而不是其内容(即 Linux 术语中的 . ),因此结果是: .

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

第五种回答

ls -d 列出目录本身而不是内容。文件正常列出。查看 man ls 以查看所有选项的说明。

. 是目录本身,与从当前目录运行命令时使用的目录相同,./runscript.sh

.. 是父目录,当前目录的父目录,如 cd .. 中所示,在目录层次结构中向上移动

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14441.html,未经允许,请勿转载。