Programing

"예쁜"디렉토리 트리를 만들기위한 ASCII 라이브러리?

crosscheck 2020. 10. 31. 09:22
반응형

"예쁜"디렉토리 트리를 만들기위한 ASCII 라이브러리?


다음과 같은 디렉토리 트리 시각화를 쉽게 만들 수있는 * nix 도구 또는 perl / php 라이브러리가 있습니까?

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

어떻게에서이 예에 대한 유닉스 트리 / 리눅스 나무 :

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

그 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

이 질문에 대한 답변은 오래 전부터 있었지만, 트리 라는이 프로그램 도 꽤 멋진 것을 발견했습니다 .


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

--tree를 사용한 exa 는 훌륭한 작업을 수행합니다.

exa --tree ~/tmp/public/

<dir>
├── aboutme
│  └── index.html
├── atrecurse
│  └── index.html
├── base.css
├── html5
│  ├── cat-and-mouse
│  └── frantic
│     ├── css
│     │  └── main.css

멋진 Python 스크립트 : http://code.activestate.com/recipes/217212/


Have a look at App::Asciio  

참고URL : https://stackoverflow.com/questions/1581559/ascii-library-for-creating-pretty-directory-trees

반응형