Perintah tar normal
tar cvf foo.tar ./foo >foo.out 2>foo.err
memiliki tiga aliran IO output
- arsipkan data ke foo.tar
- daftar nama file ke STDOUT (dialihkan ke foo.out)
- pesan kesalahan ke STDERR (dialihkan ke foo.err)
Saya kemudian dapat memeriksa foo.err untuk pesan kesalahan tanpa harus membaca daftar nama file.
jika saya ingin melakukan sesuatu dengan data arsip (pipa melalui netcat atau program kompresi khusus) saya dapat menggunakan -f -
opsi tar dengan demikian
tar cvf - ./foo 2>foo.err | squish > foo.tar.S
Tapi sekarang daftar nama file saya dicampur dengan pesan kesalahan saya karena -v
output tar jelas tidak bisa pergi ke STDOUT (di situlah data arsip mengalir) jadi tar dengan cerdik menulisnya ke STDERR sebagai gantinya.
Menggunakan Korn shell, apakah ada cara untuk membangun perintah yang menyalurkan aliran arsip ke perintah lain tetapi masih menangkap -v
output secara terpisah dari pesan kesalahan apa pun.
tee
? Ini sepertinya kasus penggunaan yang cukup valid untuk itu.