what to use sftp or scp

hi,
i have a weird problem
i have to copy the file with caret(^) in it. but when i tries to copy with
scp. It(scp) says that it cant use ^file_name
scp mohit^narang user@machine/mohit^narang

the error comes in the second parameter.if i used user@machine/mohit_narang(under score) instead of ^ it woks fine.

to overcome this problem i tried diifernt combination like scond paremter in
1.) "user@machine/mohit^narang"
2.) user@machine/"mohit^narang"
3.) user@machine/mohit\\^narang

but every combination is throwing the same error

so i finally thought of using the SFTP but one more problem comes here
it transfer properly but teradata loader (tpump) was not able tp load the the sentence having ?(in the end) does not recognize and loading a(with cap) in the table

any one know what should i do
i m totally perplexed on this issue:confused::confused::confused::confused:

I know the problem and it is a nightmare.
Easy solution is not to use control (read: stupid) characters in filenames.
You could try again with single quotes, with and without the escape character...good luck
You could copy it to a sensible name and then rename it to the old (stupid) name, with the control character, on the destination system.
The short answer is just don't use control (stupid) characters - in files or filenames.

Just noticed that you're not using a colon ':' separator between hostname and directory.

So, should:
user@machine/mohit^narang

actually be:
user@machine:/mohit^narang

?

Also, I presume this "^" is not a *control* character (ASCII 0-31) but instead the actual ASCII ^ character.