Macでtreeコマンドを使う

Windowsでフォルダー構造を見るために使っていたtreeコマンドをMacで使おうと思ったら、標準でその機能がありませんでしたので調べてみました。

環境

  • OS X El Capitan バージョン 10.11.3
  • Homebrew バージョン 0.9.5
  • Tree バージョン 1.7.0

Tree?

Description: Tree is a recursive directory listing command that produces a depth indented listing of files, which is colorized ala dircolors if the LS_COLORS environment variable is set and output is to tty. Tree has been ported and reported to work under the following operating systems: Linux, FreeBSD, OS X, Solaris, HP/UX, Cygwin, HP Nonstop and OS/2.

Extracted automatically from Tree homepage

インストール

Homebrewを先にインストールしておきます。

treeをインストールします。

$ brew install tree
==> Downloading https://homebrew.bintray.com/bottles/tree-1.7.0.el_capitan.bottl
Already downloaded: /Library/Caches/Homebrew/tree-1.7.0.el_capitan.bottle.1.tar.gz
==> Pouring tree-1.7.0.el_capitan.bottle.1.tar.gz
🍺  /usr/local/Cellar/tree/1.7.0: 7 files, 112.4K

コマンド

$ tree
.
├── directory1
│   ├── directory11
│   │   ├── file111.txt
│   │   └── file112.txt
│   └── directory12
│       └── file121.txt
└── directory2

4 directories, 3 files

オプション

  • -a 隠しファイルも表示する
  • -d ディレクトリーだけ表示する
  • -L level level階層まで表示する
  • -P pattern patternに該当するファイルを表示する
  • -I pattern patternに該当しないファイルを表示する
  • --charset X 文字コードXを使って表示する
  • -X XMLの形式で表示する
  • -J JSONの形式で表示する

ヘルプ

$ tree --help
usage: tree [-acdfghilnpqrstuvxACDFJQNSUX] [-H baseHREF] [-T title ]
	[-L level [-R]] [-P pattern] [-I pattern] [-o filename] [--version]
	[--help] [--inodes] [--device] [--noreport] [--nolinks] [--dirsfirst]
	[--charset charset] [--filelimit[=]#] [--si] [--timefmt[=]<f>]
	[--sort[=]<name>] [--matchdirs] [--ignore-case] [--] [<directory list>]
  ------- Listing options -------
# ...略...

アンインストール

$ brew uninstall tree
Uninstalling /usr/local/Cellar/tree/1.7.0... (7 files, 112.4K)

終わり

記事にコードブロックでディレクトリー構造を記載しようとした時に便利です。

参考