Dois métodos vêm à mente, find e tree . Dos dois, acho que tree se encaixa melhor na sua pergunta.
Encontre
find tem a vantagem de ser um pacote básico que pode ser encontrado em qualquer distribuição linux. Uma desvantagem é que não irá gerar uma visão em árvore. Nem grep it para erros será fácil. Em vez disso, adicione os testes -perm apropriados. O exemplo a seguir localizará todos os diretórios em / com permissão de usuário, grupo e outras permissões de leitura e enviará um erro padrão para /dev/null
find / -type d -perm /u=r -perm /g=r -perm /o=r 2>/dev/null
Árvore
Embora tree não possa ser instalado por padrão, ele está nos repositórios. Cria uma visão de árvore. Se o usuário executando tree não tiver permissão de leitura, um simples grep -v error removerá o diretório da saída. No entanto, remover os erros provavelmente deixará uma formatação estranha. -d Apenas diretórios da lista. -p Imprime o tipo de arquivo e as permissões para cada arquivo (conforme ls -l). grep -v imprime linhas que não correspondem ao padrão, error .
tree -d -p / | grep -v error