Linux ファイルの作成と更新

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux の touch コマンドを使用してファイルを作成および更新する方法を学びます。touch コマンドは、空のファイルを作成し、ファイルの内容を変更することなくファイルのタイムスタンプを変更できる、シンプルで強力なユーティリティです。

この実験は、Linux でのファイル管理を理解したい初心者を対象としています。新しいファイルを作成し、そのタイムスタンプを確認し、必要に応じてこれらのタイムスタンプを変更する方法を学びます。これらのスキルは、Linux 環境でのシステム管理、スクリプト作成、および一般的なファイル整理にとって基本的なものです。

この実験の終了時には、touch コマンドの実践的な経験を積み、ファイル管理におけるその様々な用途を理解することができます。

これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 初級 レベルの実験の完了率は 100%です。学習者から 100% の好評価を得ています。

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 つのタイムスタンプがあります。

  1. アクセス時刻 (Access time) - ファイルが最後に読み込まれた、またはアクセスされた時刻
  2. 修正時刻 (Modification time) - ファイルの内容が最後に修正された時刻
  3. 変更時刻 (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.txtdocument_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 コマンドを使用してファイルを作成し、タイムスタンプを管理する方法を学びました。以下に要点をまとめます。

  1. 基本的なファイル作成touch コマンドを使用して空のファイルを作成する方法を学びました。
  2. タイムスタンプの理解:Linux のファイルに関連付けられたさまざまなタイムスタンプの種類と、それらを表示する方法を調べました。
  3. タイムスタンプの変更:ファイルのタイムスタンプを特定の日付、相対時間に変更し、ファイル間でタイムスタンプを一致させる練習をしました。
  4. 複数のファイルの作成:パターン展開と直接指定によって複数のファイルを同時に作成する方法を学びました。
  5. ディレクトリでの操作touch コマンドがディレクトリとどのように相互作用し、ディレクトリ内のファイルの独立性を維持しながらディレクトリのタイムスタンプを更新するかを学びました。

touch コマンドは Linux のファイル管理における基本的なツールです。ファイルを作成し、タイムスタンプを操作する機能は、基本的なファイル整理からより複雑なスクリプト作成やシステム管理作業まで、さまざまなタスクに役立ちます。

Linux の学習を続けるにつれて、これらのスキルはより高度なファイル操作やシステム管理タスクの基礎となります。