As the answer to the question you linked already states,
mv can suffix files that would otherwise get overwritten by the file you move with a number to give them a unique file name:
mv --backup=t <source_file> <dest_file>
The command works by appending the next unused number suffix to the file that was first in the destination directory. The file you are moving will keep its original name.
However, this will appends suffixes like
.~1~, which seems to be not what you want:
You can rename those files in a second step though to get the names in a format like
file_1.pdf instead of
file.pdf.~1~, e.g. like this:
rename 's/((?:\..+)?)\.~(\d+)~$/_$2$1/' *.~*~
This takes all files that end with the unwanted backup suffix (by matching with the shell glob
*.~*~) and lets the
rename tool try to match the regular expression
((?:\..+)?)\.~(\d+)~$ on the file name. If this matches, it will capture the index from the
.~1~-like suffix as second group (
$2) and optionally, if the file name has an extension before that suffix like
.pdf, that will be captured by the first group (
$1). Then it replaces the complete matched file name part with
_$2$1, inserting the captured values instead of the placeholders though.
Basically it will rename e.g.
something_42, but it can not detect whether a file has multiple extensions, so e.g.
archive.tar.gz.~5~ would become