我想列出zsh
中不是python脚本的所有普通文件。
为什么以下“代码”不起作用,什么是正确的解决方案?
ls -l *(.)~*.py
更新:
我的setopt extended_glob
中有.zshrc
。
和
ls -ld *~*.py``
按预期工作。
(我在命令中添加了-d
以防止目录扩展。)
答案 0 :(得分:2)
问题是~
是一个glob 运算符(还需要设置EXTENDED_GLOB
),而(.)
是一个glob 限定符< / em>,这意味着它必须添加到整个模式的末尾,而不是在中间使用。使用
ls *~*.py(.)
代替。也就是说,*~*.py
是您的模式(所有文件都不以.py
结尾),(.)
将应用于结果。 (也许另一种说法是,glob运算符只能用于不合格的模式。)