我知道还有其他一些方法可以做同样的事情,比如
ls -l | grep "^d"
或
ls -F | grep "/$"
我只是好奇在ls -d
之后加*/
的原因。为什么简单地使用 ls -d
不起作用?这背后有什么故事或猫腻吗?
最佳答案
添加 -d
标志只是指示 ls
简单地列出目录条目而不是它们的内容。给 ls
的 *
扩展为当前目录中的所有条目,包括文件和目录。所以 ls -d *
将列出该目录中的所有条目,而不展开子目录。但是,如果您使用 */
,bash 会将其扩展为仅包含此目录中的目录。但是只要使用 ls */
,所有的目录都会被展开。添加 -d
标志可以防止这种情况发生,您只会获得此目录中的目录。
关于linux - 在命令 "*/"中使用 "ls -d */"列出目录的任何原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15737399/