Short answer: for simple commands, you can use shell-escaping of a
psql -c "\\copy \"Table\" from 'text file'"
Note: double \\ is intentional. You need to escape the backslash, which
normally escapes other special characters, like $ and ". Watch out for other
special characters though, which is why I prefer the long answer...
Long answer: A *nix shell will concatenate string literals that are
immediately following each other, even when they aren't the same type
(single quoted or double quoted). So the following:
"abc"'def'hij" (reads: double quote, abc, double quote, single quote, def,
single quote, double quote, hij, double quote)
is "abc" + 'def' + "hij" or "abcdefhij" to the shell
So if you have a single-quoted string, to insert a single quote you (1) stop
the single quoted string (2) start a double-quoted string (3) write a single
quote as the content of the double-quoted string (4) stop the double-quoted
string (5) restart the single quoted string. All without any spaces (unless
they are inside either the double or single quoted strings as part of your
You can obviously insert 2 consecutive single quotes within a single
double-quoted string - or any characters... just be aware you are in
double-quotes now, so you need to escape special characters or go back to
psql -c ' Copy "Table" from '"'"'text file'"'"