alias tree="ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'"
-
ls -R: listar subdiretórios recursivamente -
grep ":$": grep apenas para linhas com:no final da linha -
sed -e 's/:$//': remova:no final da linha -
-e 's/[^-][^\/]*\//--/g': substitua todos os componentes do caminho, exceto o último dir com--. Para ser preciso, substitua qualquer caractere, exceto-seguido por qualquer caractere, exceto/repetido zero ou mais vezes e, em seguida, seguido por/. -
-e 's/^/ /': adicione 3 espaços no início da linha -
-e 's/-/|/': substitua primeiro-por|
Existem muitos "problemas" com este fragmento começando com a análise do comando ls , mas deixando isso de lado, você pode reescrever sed part de maneira mais compacta:
ls -R | grep ":$" | sed -e 's/:$//;s/[^-][^\/]*\//--/g;s/^/ /;s/-/|/'