Remix.run Logo
kayson 10 hours ago

> sudo echo $NUM_PAGES > /proc/sys/vm/nr_hugepages

This won't work :) echo will run as root but the redirection is still running as the unprivileged user. Needs to be run from a privileged shell or by doing something like sudo sh -c "echo $NUM_PAGES > /proc/sys/vm/nr_hugepages"

The point gets across, though, technicality notwithstanding.

thayne 10 hours ago | parent | next [-]

Or

    echo $NUM_PAGES | sudo tee /proc/sys/vm/nr_hugepages 

I've always found it odd that there isn't a standard command to write stdin to a file that doesn't also write it to stdout. Or that tee doesn't have an option to supress writing to stdout.
vbezhenar 13 minutes ago | parent | next [-]

I've always thought that there should be `cat -o output-file` flag for that. GNU coreutils have miriads of useless flags and missing one actually useful flag LoL.

And probably `echo -o output-file` as well.

axiolite 10 hours ago | parent | prev | next [-]

You forgot the "sudo" before "tee"

> write stdin to a file that doesn't also write it to stdout

You mean like "dd of=/path/file" ?

TheDong 6 hours ago | parent | prev [-]

> I've always found it odd that there isn't a standard command to write stdin to a file that doesn't also write it to stdout

If you happen to have moreutils installed, you can do that with pee

    echo $NUM_PAGES | sudo pee 'cat > /proc/sys/vm/nr_hugepages'
direwolf20 4 hours ago | parent [-]

why not write sh -c then?

TheDong 3 hours ago | parent [-]

Because 'sh' isn't in moreutils and is harder to remember, next question.

Why use something portable when you can use cat pee?

timetoogo 9 hours ago | parent | prev [-]

Great point, I was running as root so I didn't pick this up. Corrected, thank you!