sedによるtreeコマンドの代用

Linux コマンドの小ネタです。

GUIでツリー表示ができるファイルブラウザじゃなくて、SSHで入ってテキストベースのコンソールでディレクトリツリーの情報を得たいときや、その情報をテキストで抽出してメモしたいとき、普通は tree コマンドを使います。
でも tree コマンドは標準では入っていません。

それを sed を使って代用するワンライナーはこんな感じ

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

これを /etc 直下で実行すると結果はこんな感じ

/etc
|--abrt
| |--abrt-action-save-package-data.conf
| |--abrt.conf
| |--gpg_keys.conf
| |--plugins
| | |--CCpp.conf
| | |--oops.conf
| | |--python.conf
| | |--vmcore.conf
| | |--xorg.conf
|--adjtime
|--aliases
|--aliases.db
|--alternatives
| |--cifs-idmap-plugin
| |--ld
| |--libnssckbi.so.x86_64
| |--mta
| |--mta-aliasesman
| |--mta-mailq
| |--mta-mailqman
| |--mta-newaliases
| |--mta-newaliasesman
| |--mta-pam
| |--mta-rmail
| |--mta-sendmail
| |--mta-sendmailman
|--anacrontab
|--asound.conf
|--at.deny
|--audisp
| |--audispd.conf
| |--plugins.d
| | |--af_unix.conf
| | |--syslog.conf
・
・
・