6

我知道还有其他一些方法可以做同样的事情,例如

ls -l | grep "^d"

或者

ls -F | grep "/$"

我只是好奇在“ls -d”之后添加“*/”的原因。为什么简单地使用“ls -d”不起作用?背后有什么故事或棘手的事情吗?

4

2 回答 2

8

添加-d标志只是指示ls简单地列出目录条目而不是它们的内容。给定的*tols扩展到当前目录中的所有条目,包括文件和目录。因此ls -d *将列出该目录中的所有条目,而不展开子目录。但是,如果您使用*/,则 bash 会将其扩展为仅包含此目录中的目录。但是只需ls */,所有目录都将被扩展。添加-d标志可以防止这种情况发生,并且您只会获得此目录中的目录。

于 2013-04-01T03:59:32.463 回答
4

如果您使用ls -d *,那么您不仅会看到目录,还会看到文件。如果您使用ls -d */,您将只能看到目录。

于 2013-04-01T03:56:21.503 回答