Globbing不按预期工作

时间:2016-10-05 09:40:35

标签: zsh glob

我想列出zsh中不是python脚本的所有普通文件。 为什么以下“代码”不起作用,什么是正确的解决方案?

ls -l *(.)~*.py

更新:

我的setopt extended_glob中有.zshrc。 和

ls -ld *~*.py``

按预期工作。 (我在命令中添加了-d以防止目录扩展。)

1 个答案:

答案 0 :(得分:2)

问题是~是一个glob 运算符(还需要设置EXTENDED_GLOB),而(.)是一个glob 限定符< / em>,这意味着它必须添加到整个模式的末尾,而不是在中间使用。使用

ls *~*.py(.)

代替。也就是说,*~*.py是您的模式(所有文件都不以.py结尾),(.)将应用于结果。 (也许另一种说法是,glob运算符只能用于不合格的模式。)