はじめに
Linuxにおける tree コマンドは、フォルダ構成を視覚的に確認するために便利なコマンドです。
僕は特にドキュメントの作成時に tree コマンドを利用しフォルダ構成を図示します。
特定のアプリケーションのセットアップドキュメントを作成する際に、
ツリー構造を表示しつつ想定するパーミッションを表示したい場合がありました。
tree コマンドのオプションを付与することでかんたんに実現できました。
検証環境
1
2
3
4
5
6
7
8
| $ uname -moi
x86_64 x86_64 GNU/Linux
$ bash -version | head -n 1
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
$ tree --version
tree v1.6.0 (c) 1996 - 2011 by Steve Baker, Thomas Moore, Francesc Rocher, Kyosuke Tokoro
|
かんたんなフォルダ構成を作成
tree コマンドの動作を見るためにかんたんなフォルダ構成を用意します。
1
2
3
4
5
| # 適当にディレクトリを作成
$ mkdir -p aaa bbb ccc/ddd
# 適当にファイルも配置
$ touch aaa/1.txt bbb/2.txt ccc/ddd/3.txt
|
結果、以下のようなファイルツリーが作成されました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| $ tree
.
|-- aaa
| `-- 1.txt
|-- bbb
| `-- 2.txt
`-- ccc
`-- ddd
`-- 3.txt
4 directories, 3 files
# `ls` コマンドで所有者、パーミッションを確認してみる
$ find . | xargs ls -ld
drwxrwxr-x 5 root root 160 Apr 7 13:39 .
drwxr-xr-x 3 root root 96 Apr 7 13:40 ./aaa
-rw-r--r-- 1 root root 0 Apr 7 13:40 ./aaa/1.txt
drwxr-xr-x 3 root root 96 Apr 7 13:40 ./bbb
-rw-r--r-- 1 root root 0 Apr 7 13:40 ./bbb/2.txt
drwxr-xr-x 3 root root 96 Apr 7 13:39 ./ccc
drwxr-xr-x 3 root root 96 Apr 7 13:40 ./ccc/ddd
-rw-r--r-- 1 root root 0 Apr 7 13:40 ./ccc/ddd/3.txt
|
tree コマンドの -u オプション
tree -u コマンドを利用することで、構造とともに 所有者 を表示させることができます。
1
2
3
4
5
6
7
8
9
10
11
| $ tree -u
.
|-- [root ] aaa
| `-- [root ] 1.txt
|-- [root ] bbb
| `-- [root ] 2.txt
`-- [root ] ccc
`-- [root ] ddd
`-- [root ] 3.txt
4 directories, 3 files
|
tree コマンドの -p オプション
tree -p コマンドを利用することで、構造とともに パーミッション を表示させることができます。
1
2
3
4
5
6
7
8
9
| $ tree -p
.
|-- [drwxr-xr-x] aaa
| `-- [-rw-r--r--] 1.txt
|-- [drwxr-xr-x] bbb
| `-- [-rw-r--r--] 2.txt
`-- [drwxr-xr-x] ccc
`-- [drwxr-xr-x] ddd
`-- [-rw-r--r--] 3.txt
|
-u オプションと -p オプションを同時に利用する
-u オプションと -p オプションは同時に利用することができます。
1
2
3
4
5
6
7
8
9
| $ tree -up
.
|-- [drwxr-xr-x root ] aaa
| `-- [-rw-r--r-- root ] 1.txt
|-- [drwxr-xr-x root ] bbb
| `-- [-rw-r--r-- root ] 2.txt
`-- [drwxr-xr-x root ] ccc
`-- [drwxr-xr-x root ] ddd
`-- [-rw-r--r-- root ] 3.txt
|
ls -l で確認できるような情報は tree でも表示できる
他にも ls -l で確認できるような情報を出力できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| # サイズを表示
$ tree -s
.
|-- [ 96] aaa
| `-- [ 0] 1.txt
|-- [ 96] bbb
| `-- [ 0] 2.txt
`-- [ 96] ccc
`-- [ 96] ddd
`-- [ 0] 3.txt
4 directories, 3 files
# グループを表示
$ tree -g
.
|-- [root ] aaa
| `-- [root ] 1.txt
|-- [root ] bbb
| `-- [root ] 2.txt
`-- [root ] ccc
`-- [root ] ddd
`-- [root ] 3.txt
4 directories, 3 files
# 作成日を表示
$ tree -D
.
|-- [Apr 7 13:40] aaa
| `-- [Apr 7 13:40] 1.txt
|-- [Apr 7 13:40] bbb
| `-- [Apr 7 13:40] 2.txt
`-- [Apr 7 13:39] ccc
`-- [Apr 7 13:40] ddd
`-- [Apr 7 13:40] 3.txt
|
ひとこと
見やすいわけでもないので、表示するとしたらパーミッションぐらいかな?と思います。
今回利用したのもパーミッションでした。