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

如何让MSYS2的ls命令不显示带有Windows隐藏属性的文件?

如何让MSYS2的ls命令不显示带有Windows隐藏属性的文件?

我太懂这种烦恼了——把MSYS2的HOME改成Windows用户目录后,一堆NTUSER.DAT、AppData这类带Windows隐藏属性的文件全冒出来,手动加一堆--hide确实太繁琐了。其实咱们可以利用MSYS2自带的工具优雅解决,它的find命令是支持识别Windows隐藏属性的,刚好能帮ls过滤掉这些文件。

下面给你两个实用方案:

方案1:简单别名(日常快速用)

把这行加到你的~/.bashrc或者~/.zshrc里:

alias ls='find . -maxdepth 1 -not -hidden -exec ls -d {} +'

以后直接敲ls,就只会显示没有Windows隐藏属性的文件。不过这个别名有个小局限:如果要给ls加参数(比如ls -l、ls /c/Users/xxx/Downloads),就得用原生命令了,这时候可以试试方案2。

方案2:灵活Shell函数(支持所有ls参数)

要是想保留ls的全部功能,同时默认过滤隐藏文件,就写个shell函数替换ls:

ls() {
  # 没传参数时,自动过滤Windows隐藏文件
  if [[ $# -eq 0 ]]; then
    find . -maxdepth 1 -not -hidden -exec command ls -d {} +
  else
    # 传了参数就用原生ls执行,不影响原有功能
    command ls "$@"
  fi
}

把这个函数放到你的shell配置文件里,之后不管是ls还是ls -lh /path都能正常工作,无参数时自动帮你过滤掉那些Windows系统隐藏文件。

小提示

  • MSYS2的find命令的-hidden选项是专门识别Windows文件隐藏属性的,不管文件名是不是以.开头,完全适配你的场景。
  • 如果偶尔想查看所有文件(包括那些Windows隐藏的),直接敲command ls就能调用原生ls命令了。

备注:内容来源于stack exchange,提问作者user31708

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 12:05:29