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
Eche un vistazo a la App::Asciio
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.
Script Cool Python para hacerlo: http://code.activestate.com/recipes/217212/
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