Edited at

tree コマンドが無い環境で tree コマンドを実現

More than 1 year has passed since last update.


tree コマンドは便利

Linux における tree コマンドは便利ですね。しかし標準コマンドではないため初めて操作するサーバや手軽に tree をインストール出来ない環境だとディレクトリ構造を奇麗にツリー上に表示することが出来ません。

その場合は find や sed を使って tree コマンドを代替しましょう。


find と sed で代替

pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/|  /g'


実行例

以下のようなディレクトリ構造が(ファイル名・ディレクトリ名にスペースを含む)

$ find .

.
./AAA
./AAA/aaa
./B B
./B B/aaa
./B B/bbb
./B B/vvv
./B B/vvv/www
./CCC
./CCC/aaa
./CCC/bbb
./CCC/ccc
./CCC/dd
./CCC/ee ee
./CCC/yyy
./CCC/yyy/iii
./CCC/yyy/iii/eee
./CCC/yyy/iii/eee/foo.txt
./dd
./hoge.txt

疑似 tree で

$ pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/|  /g'

/Users/yone098/work/yone098
|--AAA
| |--aaa
|--B B
| |--aaa
| |--bbb
| |--vvv
| | |--www
|--CCC
| |--aaa
| |--bbb
| |--ccc
| |--dd
| |--ee ee
| |--yyy
| | |--iii
| | | |--eee
| | | | |--foo.txt
|--dd
|--hoge.txt


alias

alias として .zshrc.bashrc などに設定して使ってください

alias tree="pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g'"

:mahjong: