3.3 Argument Predication and Modification

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).