RTF files created using the 'touch' command will not open
As you've likely discovered, touching a nonexistent file will create a zero-byte file with the name you specify.  (touch is also used to update the modification time on an existing file.  See man touch for further details.)

The problem you're running into is that though a completely empty file is valid HTML, text, or Markdown, it is not valid RTF—this is true of many file formats, actually, which are structured in a particular way and require some data to be present be valid.

Based on my experimentation, the bare minimum RTF file appears to be

{\rtf1}


If you'd like to create a blank RTF file from the shell, try this:

echo '{\rtf1}' &gt;Foo.rtf 


Note the above will overwrite Foo.rtf if it exists.