Thanks @KIIV, I could get the command to upload hex file to arduino board using avrdude. The upload preserved bootloader as expected. There is a nice write up here with clear explanation.