Alex Henrie
2021-03-15 20:20:40 UTC
On Sun, Mar 14, 2021 at 3:44 AM Alejandro Colomar (man-pages)
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
Interesting, thanks for sharing. There's still no `sponge -q` option
though--it always writes either to a file or to standard output.
-Alex
Actually, it looks like `pee` (also from moreutils) can be used forOTOH 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.
$ 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).
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'Astonishingly, there doesn't seem to exist a trivial tool to redirect
from standard input (or any other input file descriptor) to a file.
$ 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).
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
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
though--it always writes either to a file or to standard output.
-Alex
throwing input into the void. So between `sponge` and `pee`, I think
all the use cases are covered!
-Alex