😀

treeコマンドとかで自在にディレクトリ一覧を作る

2021/07/29に公開

はじめに

treeコマンドを使ってディレクトリ一覧を出したいけど

  • 2階層目以降は出したくない
  • .gitディレクトリやnode_modulesは除外したい
  • helpコマンド見て15分経ったけど分からなかった

という状況になったので整理してみました。

前提

  • Mac環境です
$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.7
BuildVersion:   19H1217

やってみたこと

  • こんなディレクトリがある

  • 階層数を指定

$ tree -L 2
.
├── backup
│   ├── merged.json
│   ├── payfpqhgve6annpqwdmm73wdfa.json
│   └── payfpqhgve6annpqwdmm73wdfa.json.gz
├── backup.bash
├── node_modules
│   ├── date-format
│   ├── debug
│   ├── flatted
│   ├── fs-extra
│   ├── graceful-fs
│   ├── jsonfile
│   ├── log4js
│   ├── ms
│   ├── rfdc
│   ├── streamroller
│   └── universalify
├── package-lock.json
├── package.json
├── restore.js
├── system.log
├── table1-export-path
└── table2-export-path
  • 除外するディレクトリを指定
$ tree -I 'node_modules'
.
├── backup
│   ├── merged.json
│   ├── payfpqhgve6annpqwdmm73wdfa.json
│   └── payfpqhgve6annpqwdmm73wdfa.json.gz
├── backup.bash
├── package-lock.json
├── package.json
├── restore.js
├── system.log
├── table1-export-path
└── table2-export-path

まとめ

  • treeコマンドでディレクトリを階層で一覧できる
  • -LオプションでMAX階層数を指定できる
  • -Iオプションで除外条件を指定できる
    • 例えば `-I node_modules' で 'node_modules' ディレクトリを除外できる

参考

Discussion