Como representar a estrutura de diretórios e arquivos em texto (Markdown)
Fala galera, a dica de hoje é simples e vai ajudar outros blogueiros e developers de plantão.
Enquanto escrevia meu tutorial de Elixir, surgiu a necessidade de listar todos os arquivos criados por um certo comando. Eu não queria ter que digitar todos os diretórios, arquivos, subdiretórios na mão. E o comando tree foi quem me salvou.
Então, para representar diretórios, com seus subdiretórios e arquivos desta forma
.
├── lib
│ └── blackjack.ex
├── mix.exs
├── README.md
└── test
├── blackjack_test.exs
└── test_helper.exs
você precisa navegar pelo terminal até diretório raiz do seu projeto e tacar o comando
$ tree
O comando tree (árvore, traduzindo para o português) retorna uma representação textual do diretório, isto é, sua árvore de arquivos e subdiretórios. Depois é só copiar e colar onde você quiser.
Explorando o comando tree
Se você quiser listar os arquivos ocultos, pode incluir a opção -a.
$ tree -a
.
├── .formatter.exs
├── .gitignore
├── lib
│ └── blackjack.ex
├── mix.exs
├── README.md
└── test
├── blackjack_test.exs
└── test_helper.exs
Você pode também usar o tree sem navegar até o diretório:
tree /path/to/dir/ -a
Já a opção -f inclui todo o caminho relativo no nome dos arquivos. Isto pode ser útil para listar projetos muito grandes.
tree -fa
.
├── ./.formatter.exs
├── ./.gitignore
├── ./lib
│ └── ./lib/blackjack.ex
├── ./mix.exs
├── ./README.md
└── ./test
├── ./test/blackjack_test.exs
└── ./test/test_helper.exs
Dica para Markdown
Se você usa Markdown, como eu, você pode envolver o retorno do comando tree entre "```", para o estilo bonitão ficar igual ao de código.
```shell
$ tree
.
├── lib
│ └── blackjack.ex
├── mix.exs
├── README.md
└── test
├── blackjack_test.exs
└── test_helper.exs
```
Isto fará com que ele seja envolvido entre uma tag pre e preservará os espaços e quebras de linha.
Por hoje é só, folks. ;*
