lstree directories php unix tree ascii

php - directories - Biblioteca ASCII para crear árboles de directorios "bonitos"



lstree debian (7)

¿Qué tal este ejemplo de Unix Tree / Linux Tree :

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

¿Hay alguna herramienta * nix o una biblioteca perl / php que te permita crear fácilmente visualizaciones de árbol de directorios que se vean como las siguientes?

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



Ese oneliner es genial, recomiendo usar el árbol de utilidades.

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


Me di cuenta de que esta pregunta fue respondida hace mucho tiempo, pero acabo de encontrar este programa llamado tree que también es genial.



Ver la clase RecursiveTreeIterator

Permite iterar sobre un RecursiveIterator para generar un árbol de gráficos ASCII.

$treeIterator = new RecursiveTreeIterator( new RecursiveDirectoryIterator(''/path/to/dir''), RecursiveTreeIterator::SELF_FIRST); foreach($treeIterator as $val) echo $val, PHP_EOL;

La salida será algo como esto (con c: / php en mi máquina):

|-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 …


exa con --tree hace un excelente trabajo:

exa --tree ~/tmp/public/ <dir> ├── aboutme │ └── index.html ├── atrecurse │ └── index.html ├── base.css ├── html5 │ ├── cat-and-mouse │ └── frantic │ ├── css │ │ └── main.css