【发布时间】:2021-05-05 15:40:48
【问题描述】:
我正在尝试在 zsh(在 macOS 上运行)中使用 ls 来显示除以大写字母开头的目录之外的所有文件和目录。
比如我的目录包含
存档/数据/README.md test.txt
我想运行一个只返回的ls 命令
数据/README.md test.txt
我可以使用ls -d [A-Z]*/(注意结尾的反斜杠表示目录)来显示我想要隐藏的目录(例如只返回Archive/),
并在 zsh 中使用 ls *~ 语法的反向扩展引用此 helpful answer,
我尝试(我认为是)使用ls -d *~[A-Z]*/ 否定上述内容,但这不起作用(它没有隐藏任何内容)。
此外,使用ls -d *~[A-Z]*(没有终止反斜杠)返回data/ test.txt,但这不是我想要的结果,因为我还想显示以大写字母开头的文件README.md。
请注意,我在 zsh 中启用了扩展 glob 选项,使用 setopt extendedglob。
对于 zsh 中 ls 的正确正则表达式/glob 语法以获得我想要的输出的任何帮助,我们将不胜感激。谢谢! :)
编辑:有两个非常有用的答案,但是在 zsh 中使用 ls 的任何简洁答案(使用扩展 glob 选项)仍然很棒!
【问题讨论】: