假设您在Unix的主目录中并希望查看所有子目录。
ls -d
会打印'。'
ls -d */
会打印每个子目录。
答案 0 :(得分:3)
来自ls:
的手册页 -d, --directory
list directory entries instead of contents, and do not derefer‐
ence symbolic links
所以,我认为您对目录条目和目录内容感到困惑。当你这样做
ls -d
打印当前目录的“目录条目”,在我的情况下是:
.
但是当你做的时候
ls -d */
shell将扩展*到当前目录的所有内容,上面的命令将每个目录内容作为参数。因此,输出将是当前目录的每个“目录内容”的“目录条目”,在我的情况下将是($pwd=/tmp
):
ls -d */
systemd-colord.service-XwkSsOM/ systemd-rtkit-daemon.service-XH1Bbsw/
systemd-cups.service-XRwwRXh/
请注意我不使用/
时的区别ls -d *
a.php ip.sh systemd-colord.service-XwkSsOM tmp.php
eiskaltdcpp-gtk.Wani.1462694194 model-one-final-rev.pdf systemd-cups.service-XRwwRXh tmp.py
hogsuspend res-failed.txt systemd-mariadb.service-XTsa5E9 yum_save_tx.2014-02-02.08-36.RhLlKa.yumtx
ip sess_ph2d61cksimbibrqrn1jru8l85 systemd-rtkit-daemon.service-XH1Bbsw
在*之后加上'/'将过滤掉当前目录中目录本身的所有目录内容。
答案 1 :(得分:1)
*/
仅匹配当前目录的子目录(不是文件,如果有的话)。 -d
标志指示ls
打印目录名称而不是列出其内容。
ls -d
将列出当前目录本身(同样,不其内容),由.
引用。