用于创建"漂亮"目录树的ASCII库?

Ala*_*orm 70 php unix tree ascii

是否有一些*nix工具或perl/php库可以让您轻松创建如下所示的目录树可视化?

www
|-- private
|    |-- app 
|    |    |-- php
|    |    |    |-- classes
|    |    |    +-- scripts
|    |    |-- settings
|    |    +-- sql
|    +-- lib
|         +-- ZendFramework-HEAD
+-- public
    |-- css
    |-- images
    +-- scripts
Run Code Online (Sandbox Code Playgroud)

bob*_*mcr 101

来自Unix Tree/Linux Tree的这个例子怎么样:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'  
Run Code Online (Sandbox Code Playgroud)

  • 你必须喜欢单行 (9认同)
  • 有谁知道你将如何添加到该脚本,以便它还显示目录中的文件? (3认同)
  • 这真令人厌恶,但我喜欢上面输出的一部分是它不是所有文件的破折号,你得到那些垂直连接子目录的管道 (2认同)

小智 77

那个oneliner非常酷,我建议使用tree util.

bash-3.2$ mkdir -p this/is/some/nested/example
bash-3.2$ mkdir -p this/is/another/super/nested/example
bash-3.2$ mkdir -p this/is/yet/another/example
bash-3.2$ mkdir -p this/is/some/nested/other/example
bash-3.2$ tree this
this
`-- is
    |-- another
    |   `-- super
    |       `-- nested
    |           `-- example
    |-- some
    |   `-- nested
    |       |-- example
    |       `-- other
    |           `-- example
    `-- yet
        `-- another
            `-- example

13 directories, 0 files
Run Code Online (Sandbox Code Playgroud)

  • 对于Mac上的用户,"brew install tr​​ee" (20认同)
  • 我使用特殊字符默认使用树,但http://www.codealpha.net/696/putty-and-tree-how-to-avoid-weird-characters-squares/的建议是使用`tree - charset = ASCII`,因此树生成字符,如上面的user1116793示例所示. (8认同)
  • 树太棒了! (3认同)

Ibr*_*him 16

我意识到这个问题很久以前就得到了回答,但我刚刚发现这个叫做树的程序也非常酷.

  • 对于那些从Macports转移过来的人,也可以使用Homebrew安装`tree`. (3认同)
  • 这应该被标记为正确答案。它支持 dircolors,并且输出布局更漂亮。对于 Mac OS X 用户来说,它甚至是一个 macport。 (2认同)

Gor*_*don 16

RecursiveTreeIterator

允许迭代RecursiveIterator以生成ASCII图形树.

$treeIterator = new RecursiveTreeIterator(
    new RecursiveDirectoryIterator('/path/to/dir'),
    RecursiveTreeIterator::SELF_FIRST);

foreach($treeIterator as $val) echo $val, PHP_EOL;
Run Code Online (Sandbox Code Playgroud)

输出将是这样的(在我的机器上使用c:\​​ php):

|-c:\php5\cfg
|-c:\php5\data
| |-c:\php5\data\Base
| | \-c:\php5\data\Base\design
| |   |-c:\php5\data\Base\design\class_diagram.png
| |   \-c:\php5\data\Base\design\design.txt
| |-c:\php5\data\ConsoleTools
| | \-c:\php5\data\ConsoleTools\design
| |   |-c:\php5\data\ConsoleTools\design\class_diagram.png
| |   |-c:\php5\data\ConsoleTools\design\console.png
| |   |-c:\php5\data\ConsoleTools\design\console.xml
…
Run Code Online (Sandbox Code Playgroud)


Nat*_*end 10

本身不是一个库,但这个小实用程序可以方便地在不离开浏览器的情况下生成快速树图: https: //tree.nathanfriend.io/

免责声明:我是作者:)。


and*_*oot 7

与--tree的exa表现出色:

exa --tree ~/tmp/public/

<dir>
??? aboutme
?  ??? index.html
??? atrecurse
?  ??? index.html
??? base.css
??? html5
?  ??? cat-and-mouse
?  ??? frantic
?     ??? css
?     ?  ??? main.css
Run Code Online (Sandbox Code Playgroud)