2022/06/21

treeコマンド

ファイルやディレクトリをツリー状に表示できるコマンド
よく使うので備忘録的に学習した
今回はlearned stackのsourceディレクトリに対しての操作で色々と試す

treeコマンドのオプション

詳しくはman treeを見るべき

オプション

説明

-a

不可視ファイルも表示

-d

ディレクトリのみを表示

-o [ファイル名]

指定したファイルに出力

-p

パーミッションの表示

-u

所有者の表示

-g

所有グループの表示

-I "[pattern1]|[pattern2]|[...]"

パターンマッチするものをリストから除外

コード

sourceディレクトリ上でオプションなしで実行

.../source $ tree
.
├── conf.py
├── DailyStack
│   ├── 20220605.md
│   ├── 20220606.md
│   ├── 20220607.md
│   ├── 20220608.md
│   ├── 20220609.md
│   ├── 20220613.md
│   ├── 20220617.md
│   ├── 20220620.md
│   ├── 20220621.md
│   ├── image
│   │   ├── 20220605-1.png
│   │   ├── 20220606-1.png
│   │   ├── 20220606-2.png
│   │   ├── 20220608-1.png
│   │   ├── 20220609-1.png
│   │   ├── 20220613-1.png
│   │   ├── 20220613-2.png
│   │   └── 20220617-1.png
│   ├── index.rst
│   └── WriteRule.md
├── HowtoWrite.md
├── index.rst
├── LearnedTree.md
├── mytheme
│   ├── layout.html
│   ├── page.html
│   ├── static
│   │   └── main.css
│   └── theme.conf
├── Setting.md
├── Sphinx
│   ├── index.rst
│   └── Sphinx.md
├── _static
└── _templates

7 directories, 30 files

パーミッション、所有者、所有グループも表示

.../source $ tree -pug
.
├── [-rw-r--r-- roa_pi   roa_pi  ]  conf.py
├── [drwxr-xr-x roa_pi   roa_pi  ]  DailyStack
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220605.md
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220606.md
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220607.md
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220608.md
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220609.md
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220613.md
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220617.md
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220620.md
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220621.md
│   ├── [drwxr-xr-x roa_pi   roa_pi  ]  image
│   │   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220605-1.png
│   │   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220606-1.png
│   │   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220606-2.png
│   │   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220608-1.png
│   │   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220609-1.png
│   │   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220613-1.png
│   │   ├── [-rw-r--r-- roa_pi   roa_pi  ]  20220613-2.png
│   │   └── [-rw-r--r-- roa_pi   roa_pi  ]  20220617-1.png
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  index.rst
│   └── [-rw-r--r-- roa_pi   roa_pi  ]  WriteRule.md
├── [-rw-r--r-- roa_pi   roa_pi  ]  HowtoWrite.md
├── [-rw-r--r-- roa_pi   roa_pi  ]  index.rst
├── [-rw-r--r-- roa_pi   roa_pi  ]  LearnedTree.md
├── [drwxr-xr-x roa_pi   roa_pi  ]  mytheme
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  layout.html
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  page.html
│   ├── [drwxr-xr-x roa_pi   roa_pi  ]  static
│   │   └── [-rw-r--r-- roa_pi   roa_pi  ]  main.css
│   └── [-rw-r--r-- roa_pi   roa_pi  ]  theme.conf
├── [-rw-r--r-- roa_pi   roa_pi  ]  Setting.md
├── [drwxr-xr-x roa_pi   roa_pi  ]  Sphinx
│   ├── [-rw-r--r-- roa_pi   roa_pi  ]  index.rst
│   └── [-rw-r--r-- roa_pi   roa_pi  ]  Sphinx.md
├── [drwxr-xr-x roa_pi   roa_pi  ]  _static
└── [drwxr-xr-x roa_pi   roa_pi  ]  _templates

7 directories, 30 files

ディレクトリのみの表示

.../source $ tree -d
.
├── DailyStack
│   └── image
├── mytheme
│   └── static
├── Sphinx
├── _static
└── _templates

7 directories

一致するパターンをリストから除外

.../source $ tree -I "*.nouse|_*|mytheme|index.rst|image"
.
├── conf.py
├── DailyStack
│   ├── 20220605.md
│   ├── 20220606.md
│   ├── 20220607.md
│   ├── 20220608.md
│   ├── 20220609.md
│   ├── 20220613.md
│   ├── 20220617.md
│   ├── 20220620.md
│   ├── 20220621.md
│   └── WriteRule.md
├── HowtoWrite.md
├── LearnedTree.md
├── Setting.md
└── Sphinx
    └── Sphinx.md

2 directories, 15 files

今回'.'から始まるような不可視ファイルはなかったので-aオプションの実行はしなかった

まとめ

自分がよく使うtreeコマンドをまとめてみた

検索用タグ

tree, Linux command

参考

man tree