在命令“ls -d * /”中使用“* /”列出目录的任何原因?

时间:2013-04-01 03:53:04

标签: linux bash shell

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

ls -l | grep "^d"

ls -F | grep "/$"

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

2 个答案:

答案 0 :(得分:6)

添加-d标志只是指示ls只列出目录条目而不是其内容。 *的{​​{1}}扩展到当前目录中的所有条目,包括文件和目录。因此ls将列出此目录中的所有条目,而不扩展子目录。但是如果你使用ls -d *,那么bash将其扩展为仅包含此目录中的目录。但只有*/,所有目录都将被扩展。添加ls */标志可以防止这种情况发生,并且您只获得此目录中的目录。

答案 1 :(得分:2)

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