ls -d /etc/ 和 ls -d /etc/* 怎么不一样
4320查看
xiaoFen
2015-04-01 13:33

不都是统计/etc/下的目录吗?

全部回复(7)
aiden
aiden
L308
2015-04-01 22:22

ls -d /etc/* 使用了通配符, 不过这个是蛮奇怪的,能注意到这点,佩服啊。 不过我觉得这个问题不值得深入,源码里的处理逻辑就是这样的,没有其他的什么特别的意思。具体的信息查看下 ls命令的源码。话说实验楼的编辑器尽快支持markdown,那就锦上添花啦。

回复
xiaoFen
回复
aiden
L308
2015-04-01 23:29

嗯,好的。谢谢你。

回复
xiaoFen
2015-04-01 23:26

好嘞,谢谢楼上的朋友。

回复
kashu
2015-04-02 02:09

这三条命令可以实际测一下,发现有什么差异了吗? ls -d /etc/ ls -d /etc/* ls /etc/*

回复
xiaoFen
回复
2015-04-02 03:27

ls -d /etc/仅仅列出/etc/这个信息;ls -d /etc/*列出/etc下所有的目录和文件;ls /etc/*不仅有ls -d /etc/*的内容,还有下一层目录中的信息。我又试了下ls /etc/,与ls -d /etc/*几乎相同,只是后者用全路径显示。

回复
ggjj
2015-04-03 20:45

应该-d是表示以目录的形式显示出来,(如果没有通配符,应该是假定认定是文件夹,只用显示出来就可以了)那么ls -d /etc/自然显示/etc/, 原因:在~下建立空白文档t.txt, ls -d ~/t.txt 仍然会显示/home/shiyanlou/t.txt; 如果有通配符,指要在所有的文件或文件夹中挑选出文件夹显示

回复
xiaoFen
回复
2015-04-08 02:53

嗯,对的。谢谢你的回答。

回复
你的回复