2009-10-17 42 views
64

是否有一些* nix工具或perl/php庫,可以讓您輕鬆創建目錄樹可視化效果,如下所示:用於創建「漂亮」目錄樹的ASCII庫?

www 
|-- private 
| |-- app 
| | |-- php 
| | | |-- classes 
| | | +-- scripts 
| | |-- settings 
| | +-- sql 
| +-- lib 
|   +-- ZendFramework-HEAD 
+-- public 
    |-- css 
    |-- images 
    +-- scripts 
+1

如果有人在Windows上尋找這個解決方案(我是!),只需在命令行鍵入'tree'即可。 –

回答

94

如何從Unix Tree/Linux Tree這個例子:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/' 
+7

你必須愛一個班輪 – pavium

+1

也適用於我的Mac!謝謝! – lexu

+2

這很令人厭惡,但我喜歡上面輸出的一部分是它不是所有文件都是破折號,你可以通過這些管道垂直連接子目錄 –

15

我意識到這個問題很久以前的事了回答,但我剛剛發現這個程序叫做tree這也很酷。

+1

這應該被標記爲正確的答案。它支持dircolors,並且輸出更好地佈置。對Mac OS X用戶來說,它甚至也是一個macport。 –

+3

'tree'也可以使用Homebrew安裝,適用於那些從Macports移植過來的人。 – jeffbyrnes

+0

需要注意的是,對於Windows,您只需從命令行鍵入'tree'即可。無需安裝任何東西。 –

16

RecursiveTreeIterator

允許迭代一個RecursiveIterator生成一個ASCII圖形樹。

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

foreach($treeIterator as $val) echo $val, PHP_EOL; 

輸出會是這樣(用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 
… 
70

這oneliner是很酷,我建議使用 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 
+3

樹只是真棒! –

+19

對於Mac上的那些人,'brew安裝樹' – briangonzalez

+5

我在樹上使用特殊字符作爲默認設置,但建議來自http://www.codealpha.net/696/putty-and-tree-how-to-avoid-奇怪的字符正方形/是使用'tree --charset = ASCII',以便樹生成字符,如上面user1116793的例子。 –