はじめに
この実験では、Linux の touch コマンドを使用してファイルを作成および更新する方法を学びます。touch コマンドは、空のファイルを作成し、ファイルの内容を変更することなくファイルのタイムスタンプを変更できる、シンプルで強力なユーティリティです。
この実験は、Linux でのファイル管理を理解したい初心者を対象としています。新しいファイルを作成し、そのタイムスタンプを確認し、必要に応じてこれらのタイムスタンプを変更する方法を学びます。これらのスキルは、Linux 環境でのシステム管理、スクリプト作成、および一般的なファイル整理にとって基本的なものです。
この実験の終了時には、touch コマンドの実践的な経験を積み、ファイル管理におけるその様々な用途を理解することができます。
touch コマンドで最初のファイルを作成する
このステップでは、touch コマンドを使用して新しいファイルを作成する方法を学びます。これは Linux で最も基本的なファイル操作の 1 つです。
まず、正しいディレクトリにいることを確認しましょう。次のコマンドを実行します。
pwd
出力に /home/labex/project ディレクトリにいることが表示されるはずです。ここがファイルを作成する場所です。
では、touch コマンドを使用して新しい空のファイルを作成しましょう。
touch myfile.txt
touch コマンドは、ファイルが存在しない場合は空のファイルを作成します。ファイルが既に存在する場合は、touch はファイルの内容を変更することなく、そのアクセス時間と変更時間を現在の時間に更新します。
ファイルが作成されたことを確認するには、ls コマンドを実行します。
ls -l
次のような出力が表示されるはずです。
-rw-r--r-- 1 labex labex 0 May 15 10:30 myfile.txt
この出力は以下の情報を示しています。
- ファイルのパーミッション (
-rw-r--r--) - 所有者とグループ (どちらも
labex) - ファイルサイズ (ファイルが空なので 0 バイト)
- 作成日時
- ファイル名 (
myfile.txt)
おめでとうございます!touch コマンドを使用して最初のファイルを正常に作成しました。
ファイルの詳細とタイムスタンプについて
ファイルを作成したので、次はファイルの詳細を表示する方法と、Linux におけるファイルに関連付けられたタイムスタンプについて学びましょう。
Linux のすべてのファイルには、3 つのタイムスタンプがあります。
- アクセス時刻 (Access time) - ファイルが最後に読み込まれた、またはアクセスされた時刻
- 修正時刻 (Modification time) - ファイルの内容が最後に修正された時刻
- 変更時刻 (Change time) - ファイルのメタデータ(パーミッション、所有権など)が最後に変更された時刻
作成したファイルのこれらのタイムスタンプを表示するには、stat コマンドを使用します。
stat myfile.txt
出力は次のようになります。
File: myfile.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 655361 Links: 1
Access: (0644/-rw-r--r--) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 10:30:00.000000000 +0000
Modify: 2023-05-15 10:30:00.000000000 +0000
Change: 2023-05-15 10:30:00.000000000 +0000
Birth: 2023-05-15 10:30:00.000000000 +0000
より簡潔な表示のために、特定のオプションを指定して ls コマンドを使用できます。
ls -l --time=atime myfile.txt ## アクセス時刻を表示
ls -l myfile.txt ## 修正時刻を表示 (ls -l のデフォルト)
次に、2 番目のファイルを作成し、タイムスタンプを比較する方法を見てみましょう。
touch secondfile.txt
次に、両方のファイルをリストして、それらのタイムスタンプを確認します。
ls -lt
secondfile.txt がリストの一番上に表示されるはずです。これは、ls -lt が修正時刻でファイルをソートし、最後に修正されたファイルが最初にリストされるためです。
これらのタイムスタンプを理解することは、Linux システムでのファイル管理とトラブルシューティングにとって重要です。
touch を使ったファイルのタイムスタンプの変更
touch コマンドの強力な機能の 1 つは、ファイルのタイムスタンプを変更する能力です。これは、テスト、デバッグ、またはファイルの整理に役立ちます。
最初に作成したファイル (myfile.txt) のタイムスタンプを変更しましょう。-t オプションを使用して、特定の日付と時刻に設定します。
touch -t 202301010900 myfile.txt
このコマンドは、myfile.txt のタイムスタンプを 2023 年 1 月 1 日 9:00 AM に設定します。使用される形式は YYYYMMDDhhmm(年、月、日、時、分)です。
では、タイムスタンプが変更されたことを確認しましょう。
ls -l myfile.txt
出力には、ファイルの変更時間が 2023 年 1 月 1 日 09:00 であることが表示されるはずです。
-rw-r--r-- 1 labex labex 0 Jan 1 09:00 myfile.txt
タイムスタンプを相対的な時間、たとえば過去の特定の日数に設定することもできます。たとえば、タイムスタンプを 7 日前に設定するには、次のようにします。
touch -d "7 days ago" myfile.txt
変更を確認します。
ls -l myfile.txt
別の便利なオプションは、あるファイルのタイムスタンプを別のファイルの基準として使用することです。新しいファイルを作成しましょう。
touch thirdfile.txt
では、thirdfile.txt のタイムスタンプを secondfile.txt と一致するように設定しましょう。
touch -r secondfile.txt thirdfile.txt
両方のファイルが同じタイムスタンプになったことを確認します。
ls -l secondfile.txt thirdfile.txt
これらのタイムスタンプ操作機能により、touch コマンドは Linux でのファイル管理において多用途のツールとなっています。
複数のファイルを同時に作成する
touch コマンドを使用すると、1 つのコマンドで複数のファイルを作成できます。一度にいくつかのファイルを作成する必要がある場合、これは時間を節約できます。
1 つのコマンドで 3 つの新しいファイルを作成しましょう。
touch file1.txt file2.txt file3.txt
3 つのファイルがすべて作成されたことを確認するには、次のコマンドを実行します。
ls -l file*.txt
3 つの新しいファイルとその詳細が一覧表示されるはずです。
-rw-r--r-- 1 labex labex 0 May 15 11:00 file1.txt
-rw-r--r-- 1 labex labex 0 May 15 11:00 file2.txt
-rw-r--r-- 1 labex labex 0 May 15 11:00 file3.txt
パターン展開を使用して、連番の名前を持つファイルを作成することもできます。
touch document_{1..5}.txt
このコマンドは、document_1.txt、document_2.txt というように、document_5.txt までの 5 つのファイルを作成します。
次のコマンドで確認します。
ls -l document_*.txt
一度に複数のファイルを作成するこの機能は、新しいプロジェクトのディレクトリ構造を準備するとき、または複数のファイルに対するファイル操作をテストするときに特に便利です。
ディレクトリでの touch コマンドの使用
touch コマンドは主にファイルに対して使用されますが、ディレクトリのタイムスタンプを更新するためにも使用できます。ただし、ディレクトリを作成することはできません。ディレクトリを作成するには、mkdir コマンドを使用します。
まず、操作対象のディレクトリを作成しましょう。
mkdir testdir
では、このディレクトリのタイムスタンプを確認しましょう。
ls -ld testdir
出力には、ディレクトリの作成時間が表示されるはずです。
次に、touch コマンドを使用してディレクトリのタイムスタンプを更新しましょう。
touch testdir
では、再度タイムスタンプを確認しましょう。
ls -ld testdir
タイムスタンプが現在の時間に更新されていることがわかるはずです。
先ほど学んだ同じタイムスタンプオプションをディレクトリに対しても使用できます。たとえば、ディレクトリのタイムスタンプを特定の日付に設定するには、次のようにします。
touch -t 202301010900 testdir
変更を確認します。
ls -ld testdir
ディレクトリに関する重要な注意点があります。touch コマンドはディレクトリのメタデータのタイムスタンプのみを更新し、ディレクトリ内の内容は更新しません。ディレクトリ内の各ファイルは独自のタイムスタンプを保持します。
これを実証するために、ディレクトリ内にファイルを作成しましょう。
touch testdir/insidefile.txt
では、ディレクトリとファイルの両方のタイムスタンプを確認しましょう。
ls -ld testdir
ls -l testdir/insidefile.txt
それぞれ異なるタイムスタンプが表示されることに気づくでしょう。これは、touch コマンドがそれぞれ独立して影響を与えることを示しています。
まとめ
この実験では、Linux の touch コマンドを使用してファイルを作成し、タイムスタンプを管理する方法を学びました。以下に要点をまとめます。
- 基本的なファイル作成:
touchコマンドを使用して空のファイルを作成する方法を学びました。 - タイムスタンプの理解:Linux のファイルに関連付けられたさまざまなタイムスタンプの種類と、それらを表示する方法を調べました。
- タイムスタンプの変更:ファイルのタイムスタンプを特定の日付、相対時間に変更し、ファイル間でタイムスタンプを一致させる練習をしました。
- 複数のファイルの作成:パターン展開と直接指定によって複数のファイルを同時に作成する方法を学びました。
- ディレクトリでの操作:
touchコマンドがディレクトリとどのように相互作用し、ディレクトリ内のファイルの独立性を維持しながらディレクトリのタイムスタンプを更新するかを学びました。
touch コマンドは Linux のファイル管理における基本的なツールです。ファイルを作成し、タイムスタンプを操作する機能は、基本的なファイル整理からより複雑なスクリプト作成やシステム管理作業まで、さまざまなタスクに役立ちます。
Linux の学習を続けるにつれて、これらのスキルはより高度なファイル操作やシステム管理タスクの基礎となります。



