在 msys2“ls”中使用 Windows“隐藏”属性隐藏文件

在 msys2“ls”中使用 Windows“隐藏”属性隐藏文件

我在跑系统管理软件在 Windows 11 上:

$ uname -a
MINGW64_NT-10.0-22621 couch-potato 3.4.9.x86_64 2023-09-15 12:15 UTC x86_64 Msys

我已将其配置为使用我的 Windows 主目录 ( /c/Users/<username>),而不是 msys2 提供的默认主目录 ( /home/<username>),因为不幸的是,我正在使用一些软件需要这样设置. (参见sed步骤 7 中的命令。)

$ cat /etc/nsswitch.conf
# Begin /etc/nsswitch.conf

passwd: files db
group: files db

db_enum: cache builtin

db_home: windows
db_shell: cygwin desc
db_gecos: cygwin desc

# End /etc/nsswitch.conf

问题是 WindowsC:\Users\<username>用自己的文件把主目录弄得乱七八糟。所以当我ls在主目录中执行操作时,我看到一堆NTUSER.DAT文件之类的垃圾。

我可以用类似以下的方法解决这个问题:

alias ls="ls --hide='ntuser.*' --hide='NTUSER.*'"

但是,为了正确地做到这一点,我需要在列表中添加一些其他内容,例如 AppData、NetHood、PrintHood 等。

这感觉就像是一个不太优雅的解决方案。所有我不想看到的文件在 Windows 文件系统中都已经标记为“隐藏”属性。所以我想要的是 不ls显示具有“隐藏”属性的文件。不幸的是,查看 的命令行选项ls,似乎没有可以做到这一点的选项。

有没有我不知道的方法可以做到这一点?

相关内容