Isso funcionou usando o bash no Ubuntu. Ele apenas corresponde a diretórios duplicados, independentemente da profundidade da árvore. A parte dentro do $ () constrói uma lista de nomes de diretórios separados por pipe contando duplicatas na última coluna de ls -l
. Esta lista separada por pipe é filtrada usando grep na lista de todos os diretórios. Além disso, não contabilizar outros arquivos (não usou correspondência de palavras inteiras etc.)
> ls -lR Top_Dir/ | grep -E $(ls -lR Top_Dir/ | grep ^d | rev | cut -d" " -f1 | rev | sort | uniq -d | head -c -1 | tr '\n' '|') | grep -v ^d | sed 's/://'
Top_Dir/Level_1_Dir/standard_cat
Top_Dir/Level_2_Dir/standard_cat
Top_Dir/Level_2_Dir/standard_moon
Top_Dir/Level_3_Dir/standard_moon