初心者向けのLinux「ツリーコマンド」の使用例


tree は、ディレクトリのコンテンツをツリーのような形式で再帰的に一覧表示または表示するために使用される、小さなクロスプラットフォームのコマンドラインプログラムです。各サブディレクトリ内のディレクトリパスとファイル、およびサブディレクトリとファイルの総数の概要を出力します。

ツリープログラムは、UnixおよびLinuxなどのUnixライクなシステム、DOS、Windows、およびその他の多くのオペレーティングシステムで使用できます。ファイルオプション、並べ替えオプションからグラフィックオプションまで、出力操作のさまざまなオプションを備えており、XML、JSON、およびHTML形式での出力をサポートしています。

この短い記事では、ツリーコマンドを例とともに使用して、Linuxシステム上のディレクトリの内容を再帰的に一覧表示する方法を示します。

ツリーコマンドの使用例を学ぶ

treeコマンドは、ほとんどのLinuxディストリビューションではないにしてもすべてで使用できますが、デフォルトでインストールされていない場合は、デフォルトのパッケージマネージャーを使用して図のようにインストールしてください。

# yum install tree	 #RHEL/CentOS 7
# dnf install tree	 #Fedora 22+ and /RHEL/CentOS 8
$ sudo apt install tree	 #Ubuntu/Debian
# sudo zypper in tree 	 #openSUSE

インストールしたら、次に示す例を使用して、ツリーコマンドの使用法をさらに学習できます。

1.ディレクトリの内容をツリーのような形式で一覧表示するには、目的のディレクトリに移動し、次のようにオプションや引数を指定せずにツリーコマンドを実行します。 rootユーザーのアクセス許可が必要なディレクトリでツリーを実行するには、sudoを呼び出すことを忘れないでください。

# tree
OR
$ sudo tree

サブディレクトリとファイルを再帰的に表示する作業ディレクトリの内容と、サブディレクトリとファイルの総数の概要が表示されます。 -a フラグを使用して、隠しファイルの印刷を有効にできます。

$ sudo tree -a

2.各サブディレクトリおよびファイルのフルパスプレフィックスを使用してディレクトリの内容を一覧表示するには、図のように -f を使用します。

$ sudo tree -f

3. -d オプションを使用して、サブディレクトリからその中のファイルを除いたものだけを出力するようにツリーに指示することもできます。 -f オプションと一緒に使用すると、ツリーは次のように完全なディレクトリパスを出力します。

$ sudo tree -d 
OR
$ sudo tree -df

4. -L オプションを使用して、ディレクトリツリーの最大表示深度を指定できます。たとえば、深さ2が必要な場合は、次のコマンドを実行します。

$ sudo tree -f -L 2

ディレクトリツリーの最大表示深度を3に設定する別の例を次に示します。

$ sudo tree -f -L 3

5.ワイルドカードパターンに一致するファイルのみを表示するには、 -P フラグを使用して、パターンを指定します。この例では、コマンドは cata * に一致するファイルのみを一覧表示するため、Catalina.sh、catalina.batなどのファイルが一覧表示されます。

$ sudo tree -f -P cata*

6.次に示すように、 -prune オプションを追加して、出力から空のディレクトリをプルーニングするようにツリーに指示することもできます。

$ sudo tree -f --prune

7. ls -lコマンドと同様の方法で、各ファイルのファイルタイプとアクセス許可を出力する -p など、ツリーでサポートされている便利なファイルオプションもいくつかあります。

$ sudo tree -f -p 

8.さらに、各ファイルのユーザー名(またはユーザー名が使用できない場合はUID)を印刷するには、 -u オプションを使用し、 -g オプションを使用してグループを印刷します。名前(または、使用可能なグループ名がない場合はGID)。 -p -u 、および -g オプションを組み合わせて、ls-lコマンドと同様の長いリストを作成できます。

$ sudo tree -f -pug

9. -s オプションを使用して、名前とともに各ファイルのサイズをバイト単位で出力することもできます。各ファイルのサイズをより人間が読める形式で印刷するには、 -h フラグを使用して、キロバイト(K)、メガバイト(M)、ギガバイト(G)、テラバイトのサイズ文字を指定します(T)など。

$ sudo tree -f -s
OR
$ sudo tree -f -h

10.各サブディレクトリまたはファイルの最終変更時刻の日付を表示するには、次のように -D オプションを使用します。

$ sudo tree -f -pug -h -D

11.もう1つの便利なオプションは、 -du です。これは、各サブディレクトリのサイズを、そのすべてのファイルとサブディレクトリ(およびそれらのファイルなど)のサイズの累積として報告します。

$ sudo tree -f --du

12.最後になりましたが、 -o オプションを使用して、後で分析するためにツリーの出力をファイル名に送信またはリダイレクトできます。

$ sudo tree -o direc_tree.txt

これでtreeコマンドはすべて完了です。mantreeを実行して、より多くの使用法とオプションを確認してください。ご質問やご意見がございましたら、以下のフィードバックフォームをご利用ください。