You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境PowerShell dir命令-Include参数通配符失效问题

问题原因说明

dir是PowerShell中Get-ChildItem命令的内置别名,该场景下的-Include参数行为差异是PowerShell文件系统提供程序的固有设计逻辑导致,与Linux运行环境无关,核心规则如下:

  • -Include参数的过滤逻辑存在明确生效前提:未指定-Recurse参数时,-Include不会对路径解析得到的目录子项应用过滤规则
    • 执行dir Desktop\* -include psmyfolder*时,路径末尾的*会让PowerShell先枚举Desktop目录下的所有直接子项,但由于未携带-Recurse参数,psmyfolder*的匹配规则不会作用在这批枚举出来的子项上,PowerShell只会将Desktop\*作为单个路径字面量和过滤规则做匹配,无法返回预期结果。
    • 执行dir Desktop -include psmyfolder* -recurse时,-Recurse参数触发了递归遍历逻辑,此时-Include规则会作用在遍历过程中遇到的每一个文件/目录项上,因此可以正常匹配到符合名称要求的目标。
  • 多数入门教程未明确说明-Include的生效边界,容易造成「路径末尾加*就能触发过滤」的认知偏差。如果要在不使用-Recurse的前提下过滤目录下的直接子项,除了已知执行效率更高的-Filter参数外,也可以通过管道传递Where-Object实现过滤,示例:
    dir Desktop\* | Where-Object Name -like 'psmyfolder*'
    
  • PowerShell在Linux环境下完全兼容\和/作为路径分隔符,命令中书写的Desktop\*不存在路径格式错误,不是导致异常的诱因。

内容的提问来源于stack exchange,提问作者itnoob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 00:24:42