Tee
faydasız değil
Belki de zaten bunu biliyordun? Değilse, okumaya devam edin! Veya nasıl çalıştığını biliyorsanız, ama neden var olduğundan emin değilseniz , Unix felsefesine nasıl uyduğunu görmek için sonuna kadar atlayın.
Ne olduğunu amacı tee
?
En basitinde standart girdiyle ilgili verileri alır ve bunu standart çıktıya ve bir (veya daha fazla) dosyaya yazar. Bir girişi iki çıkışa (ve iki yöne) bölme biçiminde bir tesisat tee parçasına benzetilmiştir .
Örnekler
İlk örneğinizi ele alalım:
do_something | tee -a logfile
Bu, çıktısını alır do_something
ve kullanıcıya da görüntülerken günlük dosyasına ekler. Aslında, Wikipedia sayfasındakitee
ikinci örnek olarak şöyle:
Çıktıyı bir komuttan mevcut bir dosyaya görüntülemek ve eklemek için:
lint program.c | tee -a program.lint
Bu, bilgisayardaki lint program.c komutunun standart çıktısını görüntüler ve aynı zamanda bunun bir kopyasını program.lint dosyasının sonuna ekler. Program.lint dosyası yoksa, oluşturulur.
Bir sonraki örneğin başka bir kullanımı var: izinlerin arttırılması :
İzinlerin yükseltilmesine izin vermek için:
cat ~/.ssh/id_rsa.pub | ssh admin@server "sudo tee -a /root/.ssh/authorized_keys2 > /dev/null"
Bu örnek, sudo
komutta içsel bir sınırlamayı atlamak için kullanılan tee'yi gösterir . sudo
standart çıktıyı bir dosyaya bağlayamıyor. Standart çıkış akışını /dev/null
boşaltarak, konsoldaki yansıtılmış çıktısını da bastırırız. Yukarıdaki komut, kullanıcının genel anahtarını sunucunun anahtar yetki listesine yükleyerek mevcut kullanıcıya root erişimini bir sunucuya ssh üzerinden verir.
Ya da belki bir komutun çıktısını almak, bir yere yazmak ve bunu başka bir komuta girdi olarak kullanmak mı istiyorsunuz?
Bir komutun çıktısını bir dosyaya kaydetmek ve aynı çıktıyı başka bir komuta yönlendirmek için tee komutunu da kullanabilirsiniz.
Aşağıdaki komut, crontab girişlerinin bir yedeğini alır ve crontab girişlerini, yerine geçecek olan sed komutuna bir giriş olarak iletir. Değişimden sonra yeni bir cron işi olarak eklenecek.
$ crontab -l | tee crontab-backup.txt | sed 's/old/new/' | crontab –
( Tee komut kullanım örnekleri için kredi )
Tee
Unix felsefesiyle çalışır:
Bir şey yapan programları yaz ve iyi yap. Birlikte çalışmak için programlar yazın. Metin akışlarını işlemek için programlar yazın, çünkü bu evrensel bir arayüzdür.
( Unix Felsefesinin Temellerine Kredi )
tee
bunların hepsine uyar:
- bir şey yapar: ekstra bir girdi kopyası yaratır
- diğer programlarla çalışır, çünkü diğer programların yukarıdaki örneklerde olduğu gibi birlikte çalışmasını sağlayan yapıştırıcıdır (veya eğer isterseniz 'T' sıhhi tesisat parçası).
- bunu standart girişte verilen bir metin akışını işleyerek yapar