Portável:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Se você estiver disposto a listar diretórios e arquivos separadamente (você pode mesclar a saída por classificação):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
Com o GNU find, veja resposta de Shawn J. Goff .
Se você estiver disposto a arriscar a exclusão de caracteres não imprimíveis mesmo quando não estiver enviando para um terminal, consulte resposta do ddeimeke .
Em zsh: print -rl -- **/*(DM)
( D
para incluir arquivos de ponto, M
para adicionar /
depois de diretórios)