obda.net

Zsh Glob Qualifiers

6 comments

cheat-sheet articles are about code snippets that I need every once in a while, and which I constantly forget about.

Examples

# three newest (by mtime) files
print *(.om[1,3])
# files larger than 50 kiB
print *(.Lk+50)
# files modified within the last hour
print *(.mh-1)
# files not accessed for six months or longer
print *(.aM+6)
# change ownership of anything that is owned by `alice` to `bob`
chown bob **/*(u:alice:)

Full List

Qualifier Description
/ directory
F non-empty directory (empty: (/^F))
. plain file
@ symbolic link
* executable plain file
r/A/R readable by owner/group/world
w/I/W writable by owner/group/world
x/E/X executable by owner/group/world
s/S/t setuid/setgid/sticky bit
fspec has chmod style permissions spec
u:name: owned by user name
g:name: owned by group name
a[Mwhms][-+]n access time in given units (see below)
m[Mwhms][-+]n modification time in given units
L[kmp][-+]n size in given units (see below)
^ negate following qualifiers
- toggle following links (first one turns on)
N whole pattern expands to empty if no match
D leading dots may be matched
n sort numbers numerically
o[nLamd] order by given code (see below; may repeat)
O[nLamd] order by reverse of given code
[num] select num-th file in current order
[num1,num2] select num1-th to num2-th file