Eshell supports argument predication, to filter elements of a glob, and argument modification, to manipulate argument values. These are similar to glob qualifiers in Zsh (see Glob Qualifiers in The Z Shell Manual).
Predicates and modifiers are introduced with ‘(filters)’
after any list argument, where filters is a list of predicates
or modifiers. For example, ‘*(.)’ expands to all regular files
in the current directory and ‘*(^@:U^u0)’ expands to all
non-symlinks not owned by root
, upper-cased.
Some predicates and modifiers accept string parameters, such as
‘*(u'user')’, which matches all files owned by user.
These parameters must be surrounded by delimiters; you can use any of
the following pairs of delimiters: "…"
, '…'
,
/…/
, |…|
, (…)
,
[…]
, <…>
, or {…}
.
You can customize the syntax and behavior of predicates and modifiers
in Eshell via the Customize group eshell-pred
(see Easy
Customization in The GNU Emacs Manual).