On 1/25/21 5:03 AM, Bernhard Voelker wrote:
OTOH I understand that there's a little gap in the tool landscape. Astonishingly, there doesn't seem to exist a trivial tool to redirect from standard input (or any other input file descriptor) to a file. I wrote such a little tool in the attached: $ src/sink --help Usage: src/sink [OPTION]... FILE Copy input stream to FILE. Mandatory arguments to long options are mandatory for short options too. -a, --append append to the given FILE, do not overwrite -c, --create ensure to create FILE, error if exists -i, --input-stream=FD read from stream FD instead of standard input The default input stream number FD is 0, representing the standard input. This allows not only to copy data from standard input, but from any file descriptor open for reading. It also allows control over how the output file will be opened (e.g. with O_CREAT|E_EXCL). The OPs case would look like: echo 'foo' | sudo sink /etc/foo or echo 'foo' | sudo sink -a /etc/foo # append. or echo 'foo' | sudo sink -c /etc/foo # ensure creation of the file. I'm not sure if this will ever be considered for inclusion - I just did it "for fun". ;-) Have a nice day, Berny
By chance, I just found out that there is a tool very similar to 'sink' in moreutils [1]. It's called 'sponge'.
[1]: <https://joeyh.name/code/moreutils/> So this feature already exists, and therefore I drop my patches. Cheers, Alex -- Alejandro Colomar Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/ http://www.alejandro-colomar.es/