ディレクトリ構造をイイ感じに表示してくれるコマンド【tree】

treeはディレクトリ構造を下記のようにツリー形式で表示してくれるコマンドです。

.
├── .gitignore
├── package-lock.json
├── package.json
└── src
    ├── index.css
    ├── index.html
    └── index.js

このtreeコマンドを紹介したいと思います。
ちなみに上のディレクトリ構造を想定して紹介していきます。

オプション

便利そうなオプションのみ紹介します。

隠しファイルも表示する -a

tree -a
.
├── .gitignore
├── package-lock.json
├── package.json
└── src
    ├── index.css
    ├── index.html
    └── index.js

2 directories, 6 files

表示する階層 -L

tree -L 1
.
├── package-lock.json
├── package.json
└── src

2 directories, 2 files

ディレクトリのみ表示 -d

tree -d
.
└── src

2 directories

ファイルに書き出す -o

tree -o <filename>

tree > filenameとの違いがよくわかりませんでした。多分違いはないと思います。

最後に編集した日付 -D

tree -D  
[Aug 11 22:03]  .
├── [Aug 11 22:02]  package-lock.json
├── [Aug 11 22:02]  package.json
└── [Aug 11 22:02]  src
    ├── [Aug 11 22:02]  index.css
    ├── [Aug 11 22:02]  index.html
    └── [Aug 11 22:02]  index.js

データのサイズを表示 –du

touchして作ったファイルなので、データサイズは0になってます!🙇‍♂️
package.jsonだけ適当に文字列を入れたので、ちょっとサイズがあります。

[        358]  .
├── [          0]  package-lock.json
├── [          6]  package.json
└── [        160]  src
    ├── [          0]  index.css
    ├── [          0]  index.html
    └── [          0]  index.js

XML, JSON形式で出力 -X , -J

tree -X
<?xml version="1.0" encoding="UTF-8"?>
<tree>
  <directory name=".">
    <file name="package-lock.json"></file>
    <file name="package.json"></file>
    <directory name="src">
      <file name="index.css"></file>
      <file name="index.html"></file>
      <file name="index.js"></file>
    </directory>
  </directory>
  <report>
    <directories>1</directories>
    <files>5</files>
  </report>
</tree>
tree -J
[{"type":"directory","name": ".","contents":[
    {"type":"file","name":"package-lock.json"},
    {"type":"file","name":"package.json"},
    {"type":"directory","name":"src","contents":[
      {"type":"file","name":"index.css"},
      {"type":"file","name":"index.html"},
      {"type":"file","name":"index.js"}
    ]}
  ]},
  {"type":"report","directories":1,"files":5}
]

コメント