Existe algum comando linux que eu possa chamar de um script Bash que imprima a estrutura de diretórios na forma de uma árvore, por exemplo,
folder1
a.txt
b.txt
folder2
folder3
linux
command-line
user243655
fonte
fonte
find
. Oufind . -not -path '*/\.*'
para ocultar arquivos e pastas começando com.
. Se você deseja obter uma saída com espaços, como na pergunta, use-a com o script "find prettifier":find . -not -path '*/\.*' | python -c "import sys as s;s.a=[];[setattr(s,'a',list(filter(lambda p: c.startswith(p+'/'),s.a)))or (s.stdout.write(' '*len(s.a)+c[len(s.a[-1])+1 if s.a else 0:])or True) and s.a.append(c[:-1]) for c in s.stdin]"
Respostas:
É isso que você está procurando em árvore ? Deve estar na maioria das distribuições (talvez como uma instalação opcional).
amostra retirada da página da web do mantenedor.
Você pode adicionar a opção
-L #
onde#
é substituído por um número, para especificar a profundidade máxima da recursão.Remover
-d
para exibir também os arquivos.fonte
-d
para exibir arquivos também!brew install tree
apt-cyg install tree
(supondo que você tenha instalado apt-Cyg)apt-get install tree
irá instalá-lo.Você pode usar este:
Ele mostrará uma representação gráfica dos subdiretórios atuais sem arquivos em alguns segundos , por exemplo, em /var/cache/:
Fonte
fonte
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\// /g' -e 's/^/ /'
.git
?find . | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
Para adicionar a solução de Hassou ao seu .bashrc, tente:
fonte
alias lst='ls -R | grep ":$" | sed -e '"'"'s/:$//'"'"' -e '"'"'s/[^-][^\/]*\//--/g'"'"' -e '"'"'s/^/ /'"'"' -e '"'"'s/-/|/'"'"''
Este comando funciona para exibir pastas e arquivos .
Exemplo de saída:
Fonte: Comentário de @javasheriff aqui . Ele é submerso como um comentário e publicado como resposta ajuda os usuários a identificá-lo facilmente.
fonte
find . |grep -vE 'pyc|swp|__init' | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
funcionava bemEstou prettifying a saída da resposta de @ Hassou com:
Isso é muito parecido com o resultado do
tree
agora:Você também pode criar um alias:
BTW,
tree
não está disponível em alguns ambientes, como MinGW. Portanto, a alternativa é útil.fonte
Você também pode usar a combinação dos comandos find e awk para imprimir a árvore de diretórios. Para obter detalhes, consulte " Como imprimir uma estrutura de diretório em árvore multinível usando os comandos combinados linux find e awk "
fonte