UNIX shells use the dollar sign ($) as a special character. There are several such characters. The command shells also provide methods to override the special processing associated with these characters so they can be used as normal text characters. Documentation for a specific command shell will explain the details of this processing. A file name is simply user readable text. The simplest way around the problem you are having is to use file names that do not use the command shell's special characters.