Linux ディレクトリツリーの表示

LinuxLinuxBeginner
今すぐ練習

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

はじめに

この実験では、Linux で tree コマンドを使用する方法を学びます。tree コマンドは、ディレクトリとファイルの構造を階層的な木構造形式で表示する強力なユーティリティです。この視覚的な表現により、システム内のファイルとディレクトリの構成を理解しやすくなります。

tree コマンドは、システム管理者、開発者、および複雑なディレクトリ構造を操作する必要のある人に特に役立ちます。この実験の終わりまでに、tree コマンドの基本的および高度な機能を使用して、ディレクトリ構造を効果的に視覚化できるようになります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicSystemCommandsGroup -.-> linux/tree("Directory Tree Display") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/tree -.-> lab-271413{{"Linux ディレクトリツリーの表示"}} linux/touch -.-> lab-271413{{"Linux ディレクトリツリーの表示"}} linux/mkdir -.-> lab-271413{{"Linux ディレクトリツリーの表示"}} linux/apt -.-> lab-271413{{"Linux ディレクトリツリーの表示"}} end

基本的な tree コマンドのインストールと使用

このステップでは、tree コマンドをインストールし、その基本的な機能を学びます。

tree コマンドのインストール

まず、システムに tree コマンドがインストールされていることを確認しましょう。ターミナルで以下を入力します。

if ! command -v tree &> /dev/null; then
  sudo apt-get update
  sudo apt-get install -y tree
fi

このコマンドは、tree が既にインストールされているかを確認します。インストールされていない場合、パッケージリストを更新し、tree をインストールします。

サンプルのディレクトリ構造の作成

tree コマンドを使用する前に、視覚化するディレクトリ構造が必要です。正しい作業ディレクトリにいることを確認しましょう。

cd ~/project

では、月ごとに整理されたログファイルを表すサンプルのディレクトリ構造を作成しましょう。

mkdir -p ./logs/2023/{January,February,March}
touch ./logs/2023/January/log1.txt
touch ./logs/2023/February/log2.txt
touch ./logs/2023/March/log3.txt

このコマンドシーケンスは以下のことを行います。

  • logs という名前のメインディレクトリを作成します。
  • logs の中に 2023 という名前のサブディレクトリを作成します。
  • 2023 の中に、各月用の 3 つのサブディレクトリを作成します。
  • 各月のディレクトリにログファイルを作成します。

基本的な tree コマンドの使用

では、基本的な tree コマンドを実行して、ファイル構造を見てみましょう。

tree

以下のような出力が表示されるはずです。

.
└── logs
    └── 2023
        ├── January
        │   └── log1.txt
        ├── February
        │   └── log2.txt
        └── March
            └── log3.txt

tree コマンドは、現在のディレクトリ(上部のドットで表される)から始まるディレクトリ構造を表示します。インデントと線は、ディレクトリとファイルの間の階層関係を示しています。

ディレクトリツリーの深さを制限する

大規模なディレクトリ構造を扱う場合、ツリー全体を表示すると圧倒的になることがあります。このステップでは、表示するディレクトリツリーの深さを制限する方法を学びます。

より深いディレクトリ構造の作成

この機能をよりよく説明するために、もっと複雑なディレクトリ構造を作成しましょう。

mkdir -p ~/project/backups/2023/{January,February,March}/{week1,week2,week3}
touch ~/project/backups/2023/January/week1/data.bak

これにより以下が作成されます。

  • ログと同様の構造を持つ backups ディレクトリ
  • 各月内に週を表す追加の階層
  • 1月の第1週のフォルダにサンプルのバックアップファイル

-L オプションを使用して深さを制限する

-L オプションを使用すると、ツリーを表示する深さのレベルを指定できます。表示を3レベルに制限してみましょう。

tree -L 3

以下のような出力が表示されるはずです。

.
├── backups
│   └── 2023
│       ├── January
│       ├── February
│       └── March
└── logs
    └── 2023
        ├── January
        ├── February
        └── March

週のディレクトリとその中のファイルは表示されていないことに注意してください。これは、それらが4レベル目にあり、表示を3レベルに制限したためです。

深さレベルを変更する

-L の後の数値を調整することで、表示するレベルを増減できます。深さを4に設定して試してみましょう。

tree -L 4

今度は週のディレクトリが表示されるはずですが、その中のファイルは表示されません。

.
├── backups
│   └── 2023
│       ├── January
│       │   ├── week1
│       │   ├── week2
│       │   └── week3
│       ├── February
│       │   ├── week1
│       │   ├── week2
│       │   └── week3
│       └── March
│           ├── week1
│           ├── week2
│           └── week3
└── logs
    └── 2023
        ├── January
        │   └── log1.txt
        ├── February
        │   └── log2.txt
        └── March
            └── log3.txt

複雑なディレクトリ構造の概要を把握するだけでよい場合、ツリーの深さを制御できることは便利です。

ディレクトリのみを表示する

時には、ファイルを表示せずにディレクトリ構造のみに関心があることがあります。このステップでは、tree コマンドを使ってディレクトリのみを表示する方法を学びます。

-d オプションの使用

-d オプションは、tree コマンドにディレクトリのみを表示し、ファイルを無視するよう指示します。試してみましょう。

tree -d

以下のような出力が表示されるはずです。

.
├── backups
│   └── 2023
│       ├── January
│       │   ├── week1
│       │   ├── week2
│       │   └── week3
│       ├── February
│       │   ├── week1
│       │   ├── week2
│       │   └── week3
│       └── March
│           ├── week1
│           ├── week2
│           └── week3
└── logs
    └── 2023
        ├── January
        ├── February
        └── March

この表示では、log1.txtdata.bak のようなファイルは表示されていないことに注意してください。

オプションの組み合わせ

複数のオプションを組み合わせることで、出力をさらにカスタマイズできます。たとえば、深さ 2 レベルまでのディレクトリのみを表示するには、次のようにします。

tree -d -L 2

これにより、以下のように表示されます。

.
├── backups
│   └── 2023
└── logs
    └── 2023

ディレクトリ数の表示

各サブツリーにいくつのディレクトリがあるかを確認するには、-a フラグを追加できます。

tree -d -a

出力の下部には、ディレクトリの数を示す要約が表示されます。

X directories

ここで、X はディレクトリの総数です。

個々のファイルに気を取られることなく、プロジェクトの構成を理解したい場合、ディレクトリ構造のみを表示することは特に便利です。

まとめ

この実験では、Linux でディレクトリ構造を視覚化するために tree コマンドを使用する方法を学びました。まずは基本的な使い方から始め、簡単なディレクトリ階層を作成して表示しました。その後、-L オプションで表示するディレクトリの深さを制限したり、-d オプションでディレクトリのみを表示するなど、より高度な機能を探索しました。

これらのスキルは、複雑なファイルシステムをより効率的に操作し理解するのに役立ちます。tree コマンドは、システム管理者、開発者、および Linux 環境で整理されたファイル構造を扱うすべての人にとって貴重なツールです。ディレクトリ階層を明確に視覚化することで、ファイルをより適切に管理し、ディレクトリ関連の問題をトラブルシューティングすることができます。