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

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

はじめに

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

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

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

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

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

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

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

これは、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 月の week1 フォルダー内のサンプルバックアップファイル

-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 はディレクトリの総数です。

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

まとめ

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

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