はじめに

この実験では、コマンド置換と呼ばれる便利な機能を学びます。

メールを書くときに、今日の日付を本文へ入れたい場面を想像してください。コンピューターに「今日の日付」を自動で入力してもらいたいはずです。

Linux では $() を使います。これはコンピューターに「まずこのコマンドを実行し、その結果をここに入れる」と指示します。

コマンド置換は、シェルでコマンドを組み合わせるための便利な機能の一つです。あるコマンドの出力を手動でコピーして別のコマンドに貼り付ける代わりに、シェルが自動的に置き換えてくれます。

この実験では、次の内容を学びます。

  • date コマンドの出力形式を指定する方法
  • 今日の日付(例:2025-12-23)を自動的に名前へ設定したフォルダーを作成する方法

日付の形式を指定する

まず、必要な形式で日付を取得します。

date をそのまま実行すると、扱いにくい形式の文字列が表示されます。

これは、多くのコマンドで出力形式を指定できることを思い出させてくれます。Linux のツールでは、次に何をするかに応じて、人間が読みやすい形式とコンピューターで扱いやすい形式を選べることがよくあります。

2025-12-23 のような整ったフォルダー名を作成するには、+%F を使用します。

date +%F

出力例:

2025-12-23

動的なフォルダーの作成

ここからがコマンド置換の実践です。

日付を手入力せずに、その日の日付を使ってディレクトリを作成します。

$() を使って、mkdir コマンドの 中に date コマンドを記述します。コンピューターは $() を見つけると、まずその部分を実行します。

次のコマンドを実行します。

mkdir $(date +%F)

実行時の処理:

  1. シェルが $(date +%F) を見つけます。
  2. シェルが date +%F を先に実行し、その結果(例:2025-12-23)を取得します。
  3. $() の部分を、その結果に置き換えます。
  4. mkdir 2025-12-23 を実行します。

この例から、シェルが最終的なコマンドを段階的に組み立てることが分かります。コマンドが実際に実行される前にコマンド置換が行われるため、置換後の結果を通常の引数として使用できます。

フォルダーを確認する

作成できたか確認します。

ls を実行します。

ls -l

今日の日付が名前になっている新しいフォルダーが表示されます。

このスクリプトを明日実行すると、明日の日付の新しいフォルダーが作成されます。自動バックアップは、このような仕組みで動作します。

まとめ

この実験では、あるコマンドの出力を別のコマンドの入力として使用する コマンド置換 を学びました。

  • 構文:$(command)
  • 処理:Linux は内側のコマンドを先に実行し、その結果で置き換えます。
  • 結果:時刻、ユーザー、その他の条件に応じて変化するコマンドを、値を手入力せずに作成できます。

echo "Today is $(date)" を実行して、コマンド置換の動作をもう一度確認してみましょう。