👏

zshで連番フォルダを一括作成する方法

2023/06/20に公開

記事の概要

◯◯◯_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