Есть ли какой-нибудь инструмент * nix или perl / php, который позволит вам легко создавать визуализации дерева каталогов, которые выглядят следующим образом?
www |-- private | |-- app | | |-- php | | | |-- classes | | | +-- scripts | | |-- settings | | +-- sql | +-- lib | +-- ZendFramework-HEAD +-- public |-- css |-- images +-- scripts
Как насчет этого примера из дерева Unix Tree / Linux :
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
Это oneliner довольно круто, я бы рекомендовал использовать дерево .
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
См. Класс RecursiveTreeIterator
Позволяет выполнять повторение с помощью рекурсивного элемента для генерации графического дерева 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 …
Я понимаю, что этот вопрос ответил много лет назад, но я просто нашел эту программу под названием tree, которая тоже довольно крутая.
Прохладный скрипт Python для этого: http://code.activestate.com/recipes/217212/
Взгляните на App :: Asciio