我知道还有其他一些方法可以做同样的事情,比如
ls -l | grep "^d"
或
ls -F | grep "/$"
我很好奇在“ls -d”之后添加“* /”的原因。为什么简单地使用“ls -d”不起作用?背后是否有任何故事或棘手的东西?
答案 0 :(得分:6)
添加-d
标志只是指示ls
只列出目录条目而不是其内容。 *
的{{1}}扩展到当前目录中的所有条目,包括文件和目录。因此ls
将列出此目录中的所有条目,而不扩展子目录。但是如果你使用ls -d *
,那么bash将其扩展为仅包含此目录中的目录。但只有*/
,所有目录都将被扩展。添加ls */
标志可以防止这种情况发生,并且您只获得此目录中的目录。
答案 1 :(得分:2)
如果您使用ls -d *
,那么您不仅会看到目录,还会看到文件。如果您使用ls -d */
,则只会看到目录。