📖

【シェルスクリプト】一気にファイルとディレクトリを作成

2023/05/15に公開

最近マークダウンを書くことがたくさんありすぎて
もうめんどくさいから、ファイルとディレクトリを一気に作りたくて
シェルスクリプト作成してみた。

前も1回作ったことあった気がするけどいいや

特定のディレクトリにファイルを一気に作成

完成コード


# ディレクトリのパス
dir_path="home/name/Projects/XXXXXX/XXXXXX"

# ファイル名の配列
file_names=(
name001
name002
name003
)

# ディレクトリに移動
cd "$dir_path"

# ファイルを作成するループ
for name in "${file_names[@]}"; do
  touch "$name.md"
done

解説


# ディレクトリのパス
dir_path="home/name/Projects/XXXXXX/XXXXXX"

dir_pathというのはPythonの変数名で、
ディレクトリのパスを格納するために使われます。
具体的には、dir_path変数には、
ファイルやディレクトリの場所を示すために使用される文字列が代入されます。

例えば、以下のように書くことで、
dir_path変数にLinuxまたはmacOSのディレクトリパスの文字列を代入することができます。

このように、dir_path変数にディレクトリのパスを代入することで、
後続のプログラムでそのパスを使用することができます。
たとえば、このパスの中にあるファイルを読み込んだり、書き込んだりすることができます。


# ファイル名の配列
file_names=(
name001
name002
name003
)

file_namesは、Pythonのタプルと呼ばれるデータ型を使用して、複数のファイル名を格納するために使われます。

具体的には、( )で囲まれた部分に、ファイル名をカンマ , で区切って並べたものが格納されます。この場合、file_namesには3つのファイル名が格納されています。

タプルを使ってファイル名の配列を表現することで、後続のプログラムでこれらのファイル名を使用することができます。たとえば、これらのファイルを順に読み込んで処理することができます。


# ファイルを作成するループ
for name in "${file_names[@]}"; do
  touch "$name.md"
done

これは、Bashスクリプトのループ処理の例です。このスクリプトは、file_namesに格納されている各ファイル名に対して、touchコマンドを実行して、空のファイルを作成するものです。

具体的には、forループを使って、file_namesの各要素を順に取り出して、name変数に代入します。そして、touchコマンドを実行して、$name.mdというファイルを作成します。

このスクリプトを実行する場合、ファイルを追加したいディレクトリ下に入って
Bashシェルで以下のように入力します。

bash create_file.sh

ディレクトリを一気に作成する

# 作成するディレクトリパスの配列
dir_paths=(

  "/home/XXXX/Projects/XXXXX/XXXXX"
)

# ディレクトリを作成するループ
for dir_path in "${dir_paths[@]}"; do
  mkdir -p "$dir_path"
done

作りたいファイル下で下記を実行

bash create_directory.sh

このコードは、変数 dir_paths に格納された複数のディレクトリパスを基に、
それらのディレクトリを作成するためのループです。

for 文の中で、 dir_paths 変数の中身を1つずつ dir_path に代入しています。
そして mkdir -p コマンドを使用して、
-p オプションを指定してディレクトリを作成しています。
-p オプションを使用することで、既に存在しているディレクトリであってもエラーが
発生しないようになっています。

Discussion