Ausgabe eines Befehls in zwei verschiedene Dateien umleiten

Ausgabe eines Befehls in zwei verschiedene Dateien umleiten

Ich weiß, dass ich „tee“ verwenden kann, aber ich möchte nicht, dass die Ausgabe auf dem Bildschirm gedruckt wird. Ich möchte, dass sie nur in die Datei gedruckt wird.

Beispiel:

ls > pk.txt 

Jetzt sollte auch eine weitere Datei mit dem Namen „praveen“ erstellt werden.

Antwort1

tee(1)Zum Schreiben in zwei Dateien und Verwerfen von stdout verwenden :

ls | tee pk.txt praveen >/dev/null

Bearbeitung2:Wie Stephane und Thomas anmerken, teeist dies aufgrund der Funktionsweise eine bessere Version und führt zu weniger Schreibvorgängen:

ls | tee pk.txt > praveen

Antwort2

Mit zsh:

ls > file1 > file2

(intern zshwird eine Pipe erstellt und ein Prozess gestartet, der aus dieser Pipe liest und in die beiden Dateien schreibt tee. lsstdout ist das andere Ende der Pipe.)

verwandte Informationen