Otra opción que evita canalizar las cosas de vuelta y luego a /dev/zero
es
sudo command | sudo dd of=FILENAME
El dd
la solución aún imprime basura en stderr:
$ ls | sudo dd of=FILENAME
0+1 records in
0+1 records out
459 bytes (459 B) copied, 8.2492e-05 s, 5.6 MB/s
Eso se puede evitar usando el status
opción:
command | sudo dd status=none of=FILENAME
Otra posibilidad interesante (para Linux de todos modos):
command | sudo cp /dev/stdin FILENAME
Para copiar la entrada de TTY en un archivo, a menudo hago esto:
sudo cp /dev/tty FILENAME
Es una lástima que tee no tenga una opción para suprimir stdout.
Podrías usar un guión. Es decir. pon algo como esto, es decir, $HOME/bin/stee
, 0tee
o similar:
#!/bin/bash
argv=
while [[ "$1" =~ ^- ]]; do
argv+=" $1"
shift
done
sudo tee $argv "$1" > /dev/null
#!/bin/bash
sudo tee "[email protected]" > /dev/null
Hazlo ejecutable:
$ chmod 755 Stee
Ahora hazlo, es decir:
$ ls-la | stee -a /raíz/foo