Exiba primeiro os nomes dos diretórios, depois entre e exiba apenas os nomes dos arquivos:
find . ! -name . -type d -print -exec sh -c 'find "$1" -maxdepth 1 ! -type d' {} {} \;
Estou tentando classificar a saída com tree
ou find
e acabo obtendo os mesmos resultados toda vez que detalhamos diretórios mais profundos antes dos arquivos mais acima na árvore. O que estou tentando fazer é armazenar os diretórios de interesse em uma tabela lua com o diretório como a chave para sub-tabelas de arquivos.
Estou usando tree -fi -noreport {Foo,Baz}
Foo
Foo/Foo.Build.cs
Foo/Private
Foo/Private/Foos
Foo/Private/Foos/Bars
Foo/Private/Foos/Bars/BaseBar.cpp
Foo/Private/Foo.cpp
Foo/Private/FOOPCH.h
Baz
Baz/Baz.Build.cs
Eu quero que os resultados se pareçam:
Foo
Foo/Foo.Build.cs
Foo/Private
Foo/Private/Foo.cpp
Foo/Private/FOOPCH.h
Foo/Private/Foos
Foo/Private/Foos/Bars
Foo/Private/Foos/Bars/BaseBar.cpp
Baz
Baz/Baz.Build.cs
tree fi -noreport {Foo,Baz} | sort -t '/'
não está funcionando. Eu tentei usar a solução de este tópico , que é tree | awk '{print gsub("/","/"), $0}' | sort -n | cut -d' ' -f2-
. Se eu fizer isso, perco o relacionamento entre diretórios e arquivos.
Como posso classificar arquivos com a mesma profundidade antes dos diretórios?