tree
次の形式ですべてのディレクトリを再帰的に表示するシェル スクリプトを使用してコマンドをシミュレートしたいと考えています。
.
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
`-- Lorem
どうやってやるの?
tree
次の形式ですべてのディレクトリを再帰的に表示するシェル スクリプトを使用してコマンドをシミュレートしたいと考えています。
.
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
`-- Lorem
どうやってやるの?
これを試してみてください(まったく同じ出力ではありませんが、非常に近いです):
find ./ -type d -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
http://mlsamuelson.com/content/tree-approximation-using-find-and-sedから
find . -type d -print 2>/dev/null|awk '!/\.$/ {for (i=1;i<NF;i++){d=length($i);if ( d < 5 && i != 1 )d=5;printf("%"d"s","|")}print "---"$NF}' FS='/'
http://www.unix.com/shell-programming-scripting/50806-directory-tree.htmlを参照してください。
起動するだけです:
tree .
また
tree $absolute/path/of/your/dir
隠しファイルを表示したい場合。
デフォルトでは、tree は隠しファイル (ドット '.' で始まるファイル) を表示しません。次のように入力します。
tree -a .
これがツリーコマンドの機能です。
スプートニクの答えを変更して、元の形式に近づけます(私が好む):
find ./ -type d -print | sed -e 's;[^/]*/; /;g;s;/ ; ;g;s;^ /$;.;;s; /;|-- ;g'
唯一の違いは、最後の行がバッククォートで始まらないことです:
.
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
|-- Lorem
find . -type d -print 2>/dev/null | awk '!/\.$/ {for (i=1;i<NF-1;i++){printf(" ")}printf("|-- ")};{print $NF}' FS='/'
Modified base on the awk one from http://www.unix.com/shell-programming-scripting/50806-directory-tree.html
pwd;find . -type d -print 2>/dev/null|awk '!/\.$/ {for (i=1;i<NF-1;i++){printf("│ ")}print "├── "$NF}' FS='/'
Output looks more similar to tree
:
/etc
├── sudoers.d
├── susehelp.d
│ ├── htdig
├── sysconfig
│ ├── SuSEfirewall2.d
│ │ ├── services
│ ├── network
│ │ ├── if-down.d
│ │ ├── if-up.d
│ │ ├── providers
│ │ ├── scripts
│ ├── scripts
├── sysctl.d
├── systemd
│ ├── system
│ │ ├── default.target.wants
│ │ ├── getty.target.wants
│ │ ├── multi-user.target.wants