2022-12-01

Brace expansion

Brace expansion

Examples

โฏ echo {1,2,3}
1 2 3
# Spaces are not allowed
echo {1, 2, 3}
zsh: parse error near `}'
โฏ echo file{1,2,3}
file1 file2 file3
โฏ echo file{,2,3}
file file2 file3
โฏ echo file{1..3}
file1 file2 file3
โฏ echo file{001..3}
file001 file002 file003
# Nested
โฏ echo file{1,2{a,b},3}
file1 file2a file2b file3
โฏ mkdir -p settings/{__init__,base,local}
 
โฏ tree
.
โ””โ”€โ”€ settings
    โ”œโ”€โ”€ __init__
    โ”œโ”€โ”€ base
    โ””โ”€โ”€ local
โฏ mkdir -p parent/{girl,boy}/{name,age}
 
โฏ tree
.
โ””โ”€โ”€ parent
    โ”œโ”€โ”€ boy
    โ”‚ย ย  โ”œโ”€โ”€ age
    โ”‚ย ย  โ””โ”€โ”€ name
    โ””โ”€โ”€ girl
        โ”œโ”€โ”€ age
        โ””โ”€โ”€ name
โฏ touch 11.{in,py}
 
โฏ tree
.
โ”œโ”€โ”€ 11.in
โ””โ”€โ”€ 11.py
โฏ touch post_2022_{01..3}.md
 
โฏ tree
.
โ”œโ”€โ”€ post_2022_01.md
โ”œโ”€โ”€ post_2022_02.md
โ””โ”€โ”€ post_2022-03.md
โฏ touch test.js
 
โฏ cp test{,_copy}.js
 
โฏ tree
.
โ”œโ”€โ”€ test.js
โ””โ”€โ”€ test_copy.js
โฏ touch test.txt
 
โฏ mv test.{txt,md}
 
โฏ tree
.
โ””โ”€โ”€ test.md
โฏ mv {,parent/}folder
 
โฏ tree
.
โ””โ”€โ”€ parent
 ย ย  โ””โ”€โ”€ folder
โฏ curl https://httpstat.us/{417..418}
417 Expectation Failed418 I'm a teapot%