Eine weitere Option, die es vermeidet, das Zeug zurück und dann zu /dev/zero
zu leiten ist
sudo command | sudo dd of=FILENAME
Die dd
Die Lösung druckt immer noch Müll auf 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
Dies kann mit dem status
vermieden werden Möglichkeit:
command | sudo dd status=none of=FILENAME
Eine weitere interessante Möglichkeit (jedenfalls für Linux):
command | sudo cp /dev/stdin FILENAME
Um TTY-Eingaben in eine Datei zu kopieren, mache ich oft Folgendes:
sudo cp /dev/tty FILENAME
Schade, dass tee keine Option hat, stdout zu unterdrücken.
Sie könnten ein Skript verwenden. D.h. Fügen Sie so etwas ein, z. B. $HOME/bin/stee
, 0tee
oder ähnlich:
#!/bin/bash
argv=
while [[ "$1" =~ ^- ]]; do
argv+=" $1"
shift
done
sudo tee $argv "$1" > /dev/null
#!/bin/bash
sudo tee "[email protected]" > /dev/null
Ausführbar machen:
$ chmod 755 stee
Mache jetzt z.B.:
$ls -la | stee -a /root/foo