Tee (Unix)

teenin örnek kullanımı:

ls -l çıktısı tee'ye yönlendirilir, tee ise bunları file.txt dosyasına kopyalar ve less komutuna gönderir. teenin ismi de, büyük T harfine benzediği için bu şemadan ileri gelir.
| --- | --- |
Geliştirici(ler): AT&T Bell Laboratuvarları, Mike Parker, Richard Stallman, David MacKenzie, Microware, Jim Hall, JP Software, Microsoft
İlk yayınlanma: Haziran 1974 (50 yıl önce) (1974-06)
Programlama dili: C
İşletim sistemi: Unix, Unix-benzeri, Plan 9, Inferno, OS-9, FreeDOS, Windows, ReactOS, IBM i
Platform: Çoklu platform
Tür: Komut
Lisans: FreeDOS: GPLv2 ReactOS: GPLv2 Plan 9: MIT Lisansı
tee, standart akışları kullanan komut satırı yorumlayıcılarında (kabuklar) bir komuttur. Standart girdiyi okur ve hem standart çıktıya hem de bir veya daha fazla dosyaya çıktıyı yazar; bu şekilde girdiyi kopyalayarak çoğaltır. Bu komut, genel olarak, boruhatları ve filtreler ile birlikte kullanılır; boruhattında giden bir çıktıyı aynı zamanda bir dosyaya kaydetmek istediğimiz zaman kullanışlıdır.
Komut, ismini, tesisat işlerinde kullanılan T-kiriş tipi boruların İngilizce isminden (T-splitter) almıştır.
Unix'teki tee komutu, standart girdiden okuyan ve aynı anda hem standart çıktıya (genellikle ekrana) hem de bir veya daha fazla dosyaya yazan basit ama güçlü bir yardımcı programdır. İşte kullanımının ve özelliklerinin bir dökümü:
Temel Sözdizimi:
tee [OPTION]... [FILE]...
Kullanım:
Standart Girdiden Okuma: tee, bir borudan (|) veya kullanıcı girdisinden gelebilen standart girdiden veri okur ve bunu hem standart çıktıya hem de belirtilen dosyalara aktarır.
Dosyalara Yazma: tee'ye argüman olarak belirtilen dosyalar girdi verilerinin bir kopyasını alacaktır. Bu, bir komutun veya betiğin çıktısını yakalamanıza ve ekranda görmeye devam ederken bir dosyaya kaydetmenize olanak tanır.
Seçenekler:
-a, --append: Çıktıyı dosyaların üzerine yazmak yerine dosyalara ekler. Mevcut dosyalara içerik eklemek için kullanışlıdır.
-i, --ignore-interrupts: Kesme sinyallerini (Ctrl+C tuşlarına basmak gibi) yok sayar, bir kesme alınsa bile dosyalara yazmaya devam eder.
Örnek Kullanım:
# Bir komutun çıktısını bir dosyaya kaydedin ve ayrıca terminalde görüntüleyin
ls | tee output.txt

# Bir komutun çıktısını mevcut bir dosyaya ekle
ls | tee -a output.txt

# Standart girdiden okuyun ve birden fazla dosyaya kaydedin
cat file.txt | tee file1.txt file2.txt

# Terminalde bir komutun çıktısını görüntüleyin ve üzerine yazmadan bir dosyaya kaydedin
ls | tee -a output.txt
Ek Bilgi:
Adlandırılmış Borular: tee, veri akışlarını bölmek için adlandırılmış borularla (mkfifo) kullanılabilir ve birden fazla işlemin aynı borudan okumasına veya aynı boruya yazmasına izin verir.
Günlük kaydı: Kayıt tutma veya hata ayıklama amacıyla bir komutun çıktısını bir dosyaya kaydetmek istediğiniz kabuk komut dosyası oluşturma ve günlüğe kaydetme senaryolarında yaygın olarak kullanılır.
İnteraktif Kullanım: tee, bir komutun çıktısını ekranda görmeye devam ederken kaydetmek istediğiniz interaktif kullanım durumları için de kullanışlı olabilir.
Diğer Komutlarla Birleştirme: tee, Unix'te daha karmaşık veri işleme boru hatları oluşturmak için diğer komutlar ve yardımcı programlarla birleştirilebilir.
Özet:
Özünde tee, Unix ortamlarında veri akışlarını yakalamanıza ve çoğaltmanıza olanak tanıyan çok yönlü bir komut satırı aracıdır ve çeşitli komut dosyası oluşturma, günlük kaydı ve veri işleme görevleri için değerli bir varlıktır.