👏
zshで連番フォルダを一括作成する方法
記事の概要
◯◯◯_A,◯◯◯_Bのような似た名前のフォルダを作成するとき、いちいち右クリックでフォルダ作成をするのが億劫なので、ターミナルを使って一括で自動で作成できるようなzshコマンドがないか調べてみた。
zshのfor文を活用してフォルダを一括作成しよう
zshのfor文フォーマット
リストの範囲で処理を繰り返すことができる。
for 変数 in リスト
do
処理
done
連番の生成方法(ブレース展開)
for文で繰り返す範囲を指定するリストに、zshの連番生成機能を用いる。
zshでは、連番や連続したアルファベットを以下のようにブレース展開を用いて生成できる。
具体例を以下に示す。
- {1..5} (1から10の連番)
$ echo {1..5}
1 2 3 4 5 6 7 8 9 10
- {A..Z} (AからZのアルファベット)
$ echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
連番フォルダ一括作成
- hoge_1,hoge_2,hoge_3のようなフォルダを作成したい場合。
$ for letter in {1..3}; do mkdir "hoge_$letter"; done
- hoge_A,hoge_B,hoge_Cのようなフォルダを作成したい場合。
$ for letter in {A..C}; do mkdir "hoge_$letter"; done
letterは一時的な変数で、{1..3},{A..C}が展開された各文字に順番に置き換えられる。
そしてmkdir "hoge_$letter"の部分で新しいディレクトリが作成され、その名前は"hoge_"と後に変数letterの値が付け加えられる。
Discussion