You could use the meta command
\copy in psql (which encapsulates SQL
COPY) on the command line, send it to
stdout and and redirect output to be appended to a file - with
>> instead of
psql -c '\copy (SELECT 1, 2) to stdout' >> /path/to/file_to_append_to.csv
(You probably need more connection parameters.)
You can use SQL
COPY as well:
psql -c 'COPY (SELECT 1, 2) TO STDOUT' >> /path/to/file_to_append_to.csv
But it's often more convenient to use
\copy instead because (quoting the manual):
file accessibility and access rights depend on the client rather than
the server when
\copy is used.
Or, like Abelisto commented, from inside psql or any other client - if the program
cat is available (basically on all *nix OS):
COPY (SELECT 1, 2) TO PROGRAM 'cat >> /path/to/file_to_append_to.csv'
Or, still from inside psql, on any system, you can set the current directory and an output file with:
The file gets created (only) if it does not exist yet.
Then you can also SQL
COPY (or still
\copy as well):
COPY (SELECT 1, 2) TO STDOUT;
The output is appended to the file.