Listar hierarquia de diretórios com arquivos antes de subdiretórios

3

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?

    
por ZeroPhase 02.03.2017 / 00:57

1 resposta

3

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' {} {} \;
    
por 02.03.2017 / 05:12

Tags