RTF files created using the 'touch' command will not open
As you've likely discovered, touch
ing 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}' >Foo.rtf
Note the above will overwrite Foo.rtf
if it exists.