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. ;*