Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道还有其他一些方法可以做同样的事情,例如
ls -l | grep "^d"
或者
ls -F | grep "/$"
我只是好奇在“ls -d”之后添加“*/”的原因。为什么简单地使用“ls -d”不起作用?背后有什么故事或棘手的事情吗?
添加-d标志只是指示ls简单地列出目录条目而不是它们的内容。给定的*tols扩展到当前目录中的所有条目,包括文件和目录。因此ls -d *将列出该目录中的所有条目,而不展开子目录。但是,如果您使用*/,则 bash 会将其扩展为仅包含此目录中的目录。但是只需ls */,所有目录都将被扩展。添加-d标志可以防止这种情况发生,并且您只会获得此目录中的目录。
-d
ls
*
ls -d *
*/
ls */
如果您使用ls -d *,那么您不仅会看到目录,还会看到文件。如果您使用ls -d */,您将只能看到目录。
ls -d */