Alternative zum Tee-Befehl ohne STDOUT

Alternative zum Tee-Befehl ohne STDOUT

Ich verwende es, | sudo tee FILENAMEum in eine Datei schreiben oder Inhalte anhängen zu können, für die recht häufig Superuser-Berechtigungen erforderlich sind.

Obwohl ich verstehe, warum es in manchen Situationen hilfreich ist, dass es teeseine Eingabe auch wieder an STDOUT sendet, habe ich diesen Teil von nie wirklich teefür etwas Nützliches verwendet. In den meisten Situationen führt diese Funktion nur dazu, dass mein Bildschirm mit unerwünschtem Zittern gefüllt ist, wenn ich nicht den zusätzlichen Schritt gehe und es manuell mit stummschalte tee 1> /dev/null.

Meine Frage: Gibt es einen Befehl, der genau dasselbe macht wie tee, aber standardmäßig nichts an STDOUT ausgibt?

Antwort1

Eine weitere Möglichkeit, die das Hin- und Herleiten des Materials vermeidet, /dev/zeroist

sudo command | sudo dd of=FILENAME

Antwort2

Die ddLösung druckt immer noch Datenmü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 der folgenden statusOption vermieden werden:

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

Es ist schade, dass es bei tee keine Option zur Unterdrückung von stdout gibt.

Antwort3

Sie können ein Skript verwenden. Geben Sie beispielsweise Folgendes $HOME/bin/steeoder 0teeÄhnliches in den Internet Explorer ein:

#!/bin/bash

argv=
while [[ "$1" =~ ^- ]]; do
    argv+=" $1"
    shift
done

sudo tee $argv "$1" > /dev/null

#!/bin/bash

sudo tee "$@" > /dev/null

Machen Sie es ausführbar:

$ chmod 755 Stahl

Machen Sie jetzt zB:

$ ls -la | stee -a /root/foo

Antwort4

Sie können Ihren gesamten Befehl in sudo einschließen, sodass die Shell selbst sowie Weiterleitungen wie folgt ausgeführt werden root:

sudo sh -c 'do_something > FILENAME'

verwandte Informationen