Não, os comandos do Linux não estão 'integrados'. Um grande número faz parte do GNU coreutils, mas cada um deles ainda é um programa separado dentro desse pacote e pode ser compilado sozinho.
Claro que o comando tree
não tem nada a ver com o GNU, sua página do projeto pode ser encontrada aqui - link . O código-fonte está disponível para download e contém instruções de criação (suponho que você já esteja familiarizado com make
e gcc
). Um pacote fonte também estará disponível para sua distro e pode incluir adições / correções não disponíveis na versão original (mas também pode ser uma versão mais antiga). Sua distro terá instruções sobre como compilar isso. Na maioria dos casos, se você quiser codificar em um pacote, o código fonte do upstream será o melhor para usar.
Olhando o changelog para tree
, vejo que a saída XML foi adicionada na versão 1.6.0 ( -X
option) e o HTML sempre esteve disponível. Existem muitos programas já disponíveis para conversão entre as várias linguagens de marcação. xml2yaml
é específico e lhe daria yaml
. Também pandoc
é o mais abrangente que conheço e tem suporte para formatos personalizados (embora a criação de um seja uma tarefa de programação em si).
Se você ainda quiser ir em frente e tentar desenvolver esses recursos diretamente para tree
, recomendamos entrar em contato com o desenvolvedor e perguntar se eles gostariam de incorporá-los. Se eles estão interessados e você pode fornecer patches que são de alta qualidade, é muito provável que eles eventualmente sejam incorporados ao programa real. Do que já está no programa, é bem provável que ele estaria interessado em adicionar yaml
ou json
output (por outro lado, ele pode achar que o programa já tem bastante recurso).
No entanto, um formato personalizado me parece mais mal aconselhado, já que parece uma grande tarefa para uma ferramenta tão simples, a menos que haja uma maneira muito simples de implementá-lo. Você pode gostar das bibliotecas de um projeto maior como o pandoc para conversões, mas novamente isso não é aconselhável para uma ferramenta básica.