go's filepath.Walk
says that
The files are walked in lexical order, which makes the output deterministic but means that for very large directories Walk can be inefficient. Walk does not follow symbolic links.
What are the other efficient ways to do the same?