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

标签 linux bash shell

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

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/

相关文章:

shell - 如何使用 scrapy response.xpath 提取 HTML 属性的值?

bash - SSH 时为新主机自动执行 "yes"

R 在 linux 上用文本中的方括号排序似乎忽略了

linux - 使用单个命令 : Linux 在所有目录下创建一个新目录

linux - 将 cat 结果输出到 cursor linux

linux - bash shell sys.path.append 问题

linux - 在 Linux 上将 AVI 帧转换为 JPG

c - 用于解析参数 GNU 风格的库?

bash - 我该如何加快速度?

linux - 将文件移动到另一个文件夹,包括文件名中的创建日期