Você pode fazer isso na linha de comando, usando a opção -R (recursiva) e, em seguida, canalizando a saída para um arquivo assim:
ls -R > filename1
isto fará um arquivo chamado filename1 no diretório atual, contendo uma lista completa de diretórios do diretório atual e todos os subdiretórios sob ele.
Você pode listar diretórios diferentes do atual, especificando o caminho completo, por exemplo:
ls -R /var > filename2
listará tudo dentro e sob / var e colocará os resultados em um arquivo no diretório atual chamado filename2. Isso funciona em diretórios pertencentes a outro usuário, incluindo root, desde que você tenha acesso de leitura para os diretórios.
Você também pode listar diretórios aos quais você não tem acesso, como / root, com o uso do comando sudo. por exemplo:
sudo ls -R /root > filename3
Listaria tudo em / root, colocando os resultados em um arquivo chamado filename3 no diretório atual. Como a maioria dos sistemas Ubuntu não tem nada nesse diretório, o nome do arquivo3 não conterá nada, mas funcionará se o fizer.