ファイルとディレクトリの作成

LinuxBeginner
オンラインで実践に進む

はじめに

これまでの実験では、すでに存在するファイルを確認しました。ここからは、自分で作成していきます。

これは重要な変化です。ファイルシステムは、見るだけのものではありません。自分で形を整えるものでもあります。ファイルやディレクトリを作成すると、情報をただ観察するのではなく、意図的に整理し始めることができます。

この実験では、次の操作を学びます。

  1. 新しい空のファイルを作成する。
  2. 作業を整理するためのフォルダー(ディレクトリ)を作成する。
  3. 1 つのコマンドでディレクトリパス全体を作成する。

自分のファイルシステムを設計する力を身につけましょう。

新しいファイルを作成する

ファイルはどのように作成するのでしょうか。Linux では、touch というコマンドを使うのが最も簡単です。

touch はもともと、ファイルのタイムスタンプを更新するために設計されました。しかし、非常に便利な機能があります。ファイルが存在しない場合は、そのファイルを作成します。 作成されるのは空のファイル、つまり内容を書き込む前の白紙のページです。

この由来を知っておくと、コマンド名の意味も理解しやすくなります。touch は、もともと人間の感覚でいう「ファイルを作成する」ためのコマンドではなく、ファイルの時刻を変更するためのコマンドでした。その副作用として空のファイルが作成されることが、日常的な用途の 1 つになりました。

file1.txt という名前のファイルを作成します。

touch file1.txt

コマンドが成功した場合、何も表示されません。Linux の黄金律を覚えておきましょう。何も知らせがないのは、うまくいったということです。

ファイル一覧を表示して、作成できたことを確認します。

ls -l

file1.txt が表示されます。サイズの列(通常は 5 列目)を確認してください。値は 0 になっているはずです。これにより、完全に空のファイルが作成されたことを確認できます。

ディレクトリを作成する

ファイルを保存する場所が必要です。ファイルを整理するためにフォルダーを使います。Linux では、フォルダーを ディレクトリ と呼びます。

ディレクトリ構造は、多くの初心者が考える以上に重要です。システムが大きくなると、整理されたディレクトリ構成によって、人間は必要なものをすばやく見つけられ、スクリプトも予測どおりに動作しやすくなります。適切な整理は、個人の好みだけでなく、システム管理の一部です。

ディレクトリは、Make Directory の略である mkdir コマンドを使って作成します。

project_alpha という新しいディレクトリを作成します。

mkdir project_alpha

ここでも、何も表示されなければ成功です。ls -F を使って、ディレクトリが存在することを確認しましょう。-F オプションを付けると、ディレクトリ名の末尾にスラッシュ / が表示されるため、ディレクトリを簡単に見分けられます。

ls -F

project_alpha/ が表示されます。これで、ファイルシステムに新しい部屋を作成できました。

入れ子になったディレクトリを作成する

フォルダーの中にフォルダーがあり、その中にさらにフォルダーがある構成を作成したい場合はどうすればよいでしょうか。たとえば、logs/labexio/jan は、Logs フォルダーの中に LabexIO フォルダーがあり、その中に January フォルダーがある構成です。

mkdir logs/labexio/jan を実行すると、途中のフォルダーがまだ存在しないため、Linux はエラーを表示します。

フォルダーを 1 つずつ作成することもできますが、手間がかかります。

そこで、-p(parents)フラグを使います。このフラグは mkdir に対して、「存在しない親ディレクトリも作成してください」 と指示します。

これは、適切なオプションを知っていれば Linux のツールを効率よく使える、よい例です。このコマンドは最後のディレクトリだけでなく、必要なパス全体を作成します。

mkdir -p logs/labexio/jan

再帰的に一覧を表示するコマンドを使って、作成結果を確認します。

ls -R logs

入れ子になったディレクトリ構造全体が、すぐに作成されていることを確認できます。

まとめ

これで、ファイルシステムを自分で作成できるようになりました。

  • **touch filename**:空のファイルを作成します(既存のファイルに対して実行すると、タイムスタンプを更新します)。
  • **mkdir directoryname**:新しいディレクトリを作成します。
  • **mkdir -p path/to/directory**:不足している親ディレクトリを自動的に作成しながら、ディレクトリパス全体を作成します。

ファイルやフォルダーを作成できるようになったので、次はそれらを複製したり、別の場所へ移動したりする方法を学びましょう。