`ls –directory`代表什么?
在我的Ubuntu版本中,man ls有关于–directory的下一个信息:
list directory entries instead of contents, and do not dereference symbolic links
所以我有点困惑它是如何工作的。 我使用命令ls --directory
,我期望一个包含所有目录的列表,但我得到了.
那么ls --directory
或ls -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 */
仅使用带-d
ls
几乎是无用的。 它提供有关目录本身的信息。 它没有列出其内容。
这就是为什么你没有看到目录列表的原因。 您希望看到的目录是当前目录的“内容”
如果你只运行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
如果运行ls -l
而不使用-d
,则将获得当前目录中文件和文件夹的所有权限列表。 如果你不需要它,这是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/
让我用例子解释一下:
-
ls
:列出目录的内容 -
ls -d
或ls --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
list列出了self而不是它们的内容。 文件正常列出。 查看man ls
以查看所有选项的说明。
.
它是自己的目录,与从当前目录运行命令时使用的目录相同,。/ ./runscript.sh
..
是父目录,当前directore的父目录,如cd ..
在目录hieracy中向上移动