Brace expansion — 텍스트 생성
echo {a,b,c}.txt # a.txt b.txt c.txt
echo {1..5} # 1 2 3 4 5
echo {01..05} # 01 02 03 04 05 (0 패딩)
echo {1..10..2} # 1 3 5 7 9 (step)
echo {a..e} # a b c d e
mkdir -p project/{src,test,docs}/{2025,2026}Brace expansion 은 glob expansion 전에 일어나고 존재 안 하는 경로에서도 펼침 — 디렉터리 트리 생성에 완벽.
재귀 globbing
ls **/*.py # zsh; bash 는 `shopt -s globstar` 필요
ls src/**/*.{ts,tsx} # brace 와 결합** 가 디렉터리 경계 넘어 매치 — 일상 케이스에선 find -name '*.py' 보다 훨씬 빠름.
zsh glob qualifier
ls *(.) # 일반 파일만
ls *(/) # 디렉터리만
ls *(.om) # 일반 파일, mtime 최신순
ls *(.OL[1,5]) # 가장 큰 일반 파일 5 개
ls *(.m-1) # 최근 1 일 안에 수정된 일반 파일zsh 전용. one-liner 에 짜릿할 만큼 강력.
extglob (bash)
shopt -s extglob
ls !(*.txt) # .txt 빼고 다
ls @(foo|bar).log # 정확히 foo.log 또는 bar.log
ls *(foo|bar) # 0 회 이상zsh 의 패턴 alternation 의 bash 등가. default off — shopt -s extglob.