我想列出除以 owp 结尾的所有文件:因此我尝试:
ls -l *.(^owp)
zsh: unknown sort specifier
ls -l *(^owp)
zsh: unknown sort specifier
ls -l *[^o][^w][^p] # does not work either, missing some files
都不起作用。我该如何正确做到这一点?我的 .zshrc 有“set extendedglob”。
答案1
尝试以下任一方法:
ls -l ^*.owp
(即匹配除模式之外的任何内容*.owp
)
或者:
ls -l *~*.owp
(即匹配与模式匹配*
但不匹配的任何东西*.owp
)
请参阅man zshexpn
=> FILENAME GENERATION
=>Glob Operators
以了解更多详情。
附加()
在 glob 模式中的是 glob 限定符,而您需要的是 glob 运算符。
作用*.(^owp)
是:
- 匹配所有以点结尾的文件名
- 如果它们不是管道
(^p)
,并且 (o)
按“w
” => “未知排序说明符”对匹配项进行排序
请参阅man zshexpn
=> FILENAME GENERATION
=>Glob Qualifiers
以了解更多详情。
答案2
我在尝试从 git 中拉出一个分支时遇到了同样的问题。
例子:feature/this_feature(error_1)
我不得不逃避括号:feature/this_feature\(error_1\)