cleaner: traverse directories in postorder