To change build output path, go to Build, Execution, Deployment | CMake settings and set it there. Alternatively, you can configure the RUNTIME_OUTPUT_DIRECTORY property in your CMakeLists.txt file.
Please note that CLion currently supports only out-of-source build and does a lot in the background that makes in-source-tree and CMake execution directory configurations impossible. Moreover, files under ~/.clion/system/cmake/generated are not intended to be used directly, as they are managed and updated by the IDE.
In case of a low amount of disk space for your user directory, you should probably move the whole ~/clion/system folder to another partition. Read here how to do it.
To guarantee the correct language model, CLion needs to generate the project for several build types (e.g. Debug, Release), and keep them synchronized and up to date. These generated files are stored in the private folder, and actually it's 'implementation details.' In this scheme there are not one but several CMAKE_BINARY_DIR folders, for each build type.
You can, however, benefit from it by changing the configuration type (Debug -> Release, or other ways) and getting the correct code resolve in editor, in compliance with the configuration type. How to change the configuration type.
Currently we do consider adding ability to specify the generation output directory under this feature request. Please, share your use case in the linked ticket.