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/-/|/'