Tee
tidak sia-sia
Mungkin Anda tahu itu? Jika tidak, baca terus! Atau jika Anda tahu cara kerjanya, tetapi tidak yakin mengapa itu ada, lewati sampai akhir untuk melihat bagaimana itu cocok dengan filosofi Unix.
Apa adalah tujuan tee
?
Paling sederhana, dibutuhkan data pada input standar dan menuliskannya ke output standar dan satu (atau lebih) file. Itu telah disamakan dengan sepotong tee pipa dengan cara membagi satu input menjadi dua output (dan dua arah).
Contohnya
Mari kita ambil contoh pertama Anda:
do_something | tee -a logfile
Ini mengambil output dari do_something
dan menambahkannya ke file log, sementara juga menampilkannya kepada pengguna. Faktanya, halaman Wikipediatee
memiliki ini sebagai contoh kedua:
Untuk melihat dan menambahkan output dari perintah ke file yang ada:
lint program.c | tee -a program.lint
Ini menampilkan output standar dari perintah lint program.c di komputer dan pada saat yang sama menambahkan salinannya ke akhir file program.lint. Jika file program.lint tidak ada, itu dibuat.
Contoh berikutnya memiliki kegunaan lain: peningkatan izin :
Untuk memungkinkan peningkatan izin:
cat ~/.ssh/id_rsa.pub | ssh admin@server "sudo tee -a /root/.ssh/authorized_keys2 > /dev/null"
Contoh ini menunjukkan tee digunakan untuk mem-bypass batasan bawaan pada sudo
perintah. sudo
tidak dapat mem-pipe output standar ke file. Dengan membuang stream out standarnya ke /dev/null
, kami juga menekan output mirror di konsol. Perintah di atas memberikan akses root pengguna saat ini ke server lebih dari ssh, dengan menginstal kunci publik pengguna ke daftar otorisasi kunci server.
Atau mungkin Anda ingin mengambil output dari satu perintah, menulis di suatu tempat dan juga menggunakannya sebagai input ke perintah lain?
Anda juga dapat menggunakan perintah tee untuk menyimpan output dari perintah ke file dan mengarahkan output yang sama sebagai input ke perintah lain.
Perintah berikut akan mengambil cadangan entri crontab, dan meneruskan entri crontab sebagai input ke perintah sed yang akan melakukan substitusi. Setelah substitusi, itu akan ditambahkan sebagai pekerjaan cron baru.
$ crontab -l | tee crontab-backup.txt | sed 's/old/new/' | crontab –
(kredit untuk contoh penggunaan perintah Tee )
Tee
bekerja dengan filosofi Unix:
Tulis program yang melakukan satu hal dan lakukan dengan baik. Menulis program untuk bekerja bersama. Menulis program untuk menangani aliran teks, karena itu adalah antarmuka universal.
(Kredit untuk Dasar-dasar Filsafat Unix )
tee
cocok untuk semua ini:
- ia melakukan satu hal: membuat salinan input tambahan
- ini bekerja dengan program lain karena lem (atau sepotong pipa 'T' jika Anda suka) yang memungkinkan program lain bekerja sama seperti pada contoh di atas
- ia melakukan ini dengan memanipulasi aliran teks yang diberikan pada input standar