web-dev-qa-db-ja.com

コマンドの出力を2つの異なるファイルにリダイレクトする

T字を使用できることはわかっていますが、出力を画面に印刷したくありません。ファイルだけに印刷したい。

例:

ls > pk.txt 

ここで、praveenという名前の別のファイルも作成する必要があります。

5
praveen

tee(1)を使用して、2つのファイルに書き込み、stdoutを破棄します。

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

Edit2: StephaneとThomasが指摘しているように、teeがどのように機能するかにより、これはより優れたバージョンであり、書き込みが少なくなります。

ls | tee pk.txt > praveen
6
jon

zshの場合:

ls > file1 > file2

(内部的には、zshはパイプを作成し、そのパイプから読み取り、teeと同様に2つのファイルに書き込むプロセスを生成します。ls stdoutはパイプのもう一方の端です)。

2