Tee (komut) - Tee (command)

tişört
Geliştirici (ler)AT&T Bell Laboratuvarları, Mike Parker, Richard Stallman David MacKenzie, Mikrodalga, Jim Hall, JP Yazılımı, Microsoft
İlk sürümHaziran 1974; 46 yıl önce (1974-06)
İşletim sistemiUnix, Unix benzeri, Plan 9, Cehennem, OS-9, FreeDOS, pencereler, ReactOS, IBM i
PlatformÇapraz platform
TürKomut

Hesaplamada, tişört bir komut içinde komut satırı yorumlayıcıları (kabuklar ) kullanarak standart akışlar standart girdiyi okur ve onu hem standart çıktıya hem de bir veya daha fazla dosyaya yazar, girdisini etkin bir şekilde çoğaltır.[1] Öncelikle aşağıdakilerle birlikte kullanılır: borular ve filtreler. Komut, Sıhhi tesisatta kullanılan t-ayırıcı.[2]

Genel Bakış

Örnek kullanım tişört: Çıktısı ls -l yönlendirildi tişört onları dosyaya kopyalar file.txt ve çağrı cihazına Daha az. İsim tişört bu şemadan geliyor - büyük harfe benziyor T

tişört komut normalde kullanılır Bölünmüş bir programın çıktısı, böylece hem görüntülenebilir hem de bir dosyaya kaydedilebilir. Komut, veriler başka bir komut veya program tarafından değiştirilmeden önce ara çıkışı yakalamak için kullanılabilir. Tee komutu okur standart girdi, ardından içeriğini standart çıktı. Verileri aynı anda belirtilen dosyalara veya değişkenlere kopyalar. Sözdizimi, komutun uygulanmasına bağlı olarak farklılık gösterir.

Uygulamalar

Komut için kullanılabilir Unix ve Unix benzeri işletim sistemleri, Mikrodalga OS-9,[3] DOS (Örneğin. 4DOS, FreeDOS ), Microsoft Windows (Örneğin. 4SA, Windows PowerShell ), ve ReactOS.[4] Linux tişört komut Mike Parker tarafından yazılmıştır, Richard Stallman ve David MacKenzie.[5] FreeDOS versiyon tarafından geliştirilmiştir Jim Hall ve altında lisanslıdır GPL.[6] tişört komut aynı zamanda IBM i işletim sistemi.[7]

Ek olarak sünger[8] komut benzer yetenekler sunar.

Unix ve Unix benzeri

tee [-a] [-i] [Dosya ...]

Argümanlar:

  • Dosya ... Her biri çıktıyı alan dosyaların listesi.

Bayraklar:

  • -a Çıktıyı üzerine yazmak yerine her dosyaya ekler.
  • -ben Kesintileri yok sayar.

Komut, aşağıdaki çıkış değerlerini (çıkış durumu ):

  • 0 Standart girdi, tüm çıktı dosyalarına başarıyla kopyalandı.
  • > 0 Bir hata oluştu.

Kullanma işlem ikamesi birden fazla sürecin okumasını sağlar standart çıktı başlatan sürecin bu örneğini okuyun. GNU Coreutils, tee çağrısı.

Not: Başarıyla açılan herhangi bir Dosya işlenenine yazma başarılı olmazsa, başarıyla açılan diğer Dosya işlenenlerine yazar ve standart çıktı devam eder, ancak çıkış değeri> 0 olacaktır.

4DOS ve 4NT

TEE [/ A] dosyası ...

Argümanlar:

  • dosya "Tee'd" çıktısını alacak bir veya daha fazla dosya.

Bayraklar:

  • / A Ardışık düzen içeriğini, bunların üzerine yazmak yerine çıktı dosyalarına ekleyin.

Not: Ne zaman tişört bir boru ile kullanılırsa, önceki komutun çıktısı bir geçici dosya. Bu komut bittiğinde, tişört geçici dosyayı okur, çıktıyı görüntüler ve verilen dosya (lar) a yazar. komut satırı argümanı.

Windows PowerShell

tee [-FilePath]  [-InputObject ] tee -Variable  [-InputObject ]

Argümanlar:

  • -InputObject Cmdlet'e nesne girdisini belirtir. Parametre, nesneleri ve nesneleri döndüren komutları veya ifadeleri içeren değişkenleri kabul eder.
  • -FilePath Cmdlet'in nesneyi sakladığı dosyayı belirtir. Parametre kabul eder joker karakterler tek bir dosyaya çözülür.
  • -Variable Belirtilen değişkene giriş nesnelerine bir referans atanacaktır.

Not: tişört olarak uygulanır Sadece oku komut takma adı. Dahili cmdlet adı Microsoft.PowerShell.Utility Tee-Object.

Örnekler

Unix ve Unix benzeri

  • Çıkışı bir komuttan görüntülemek ve kaydetmek için (tüy ) aynı zamanda:
tiftik programı.c | tee programı.lint

Bu, komutun standart çıktısını görüntüler tiftik programı.c bilgisayarda ve aynı zamanda bir kopyasını dosyaya kaydeder program.lint. Adlı bir dosya program.lint zaten mevcut, silinmiş ve değiştirilmiştir.

Benzer şekilde, hem stdout hem de stderr çıktı akışları standart çıktıya yeniden yönlendirilebilir ve program.lint akış yeniden yönlendirmeyi kullanma:

tiftik programı.c 2>&1 | tee programı.lint
  • Bir komutun çıktısını görüntülemek ve var olan bir dosyaya eklemek için:
tiftik programı.c | tee -bir program.lint

Bu, standart çıktıyı görüntüler. tiftik programı.c bilgisayardaki komutu ve aynı zamanda bunun bir kopyasını sayfanın sonuna ekler. program.lint dosya. Eğer program.lint dosya mevcut değil, oluşturuldu.

  • İzinlerin yükseltilmesine izin vermek için:
cat ~ / .ssh / id_rsa.pub | ssh admin @ sunucu "sudo tee -a /root/.ssh/authorized_keys2> / dev / null"

Bu örnek gösterir tişört doğal bir sınırlamayı atlamak için kullanılır sudo komut. sudo standart çıktıyı bir dosyaya aktaramıyor. Standart çıkış akışını / dev / nullayrıca konsoldaki yansıtılmış çıktıyı da bastırırız. Yukarıdaki komut, kullanıcının genel anahtarını sunucunun anahtar yetkilendirme listesine yükleyerek geçerli kullanıcıya ssh üzerinden bir sunucuya kök erişimi sağlar.

İçinde Bash çıktı olabilir filtrelenmiş dosyaya yazılmadan önce - görüntülenen çıktıyı etkilemeden - kullanarak işlem ikamesi. Örneğin,

ls --color=her zaman | tee>(sed "s /  x1b [^ m] * m // g" > ls.txt)

ortak olanı kaldırır ANSI kaçış kodları yazmadan önce ls.txt, ancak bunları görüntüleme için saklar.[9]

4DOS ve 4NT

Bu örnek dosyayı arar wikipedia.txt dizeyi içeren tüm satırlar için "4DOS ", içindeki eşleşen satırların bir kopyasını oluşturur 4DOS.txt, satırları sıralar ve bunları çıktı dosyasına yazar 4DOSsorted.txt:

bulmak "4DOS" wikipedia.txt | tee 4DOS.txt | çeşit > 4DOSsorted.txt

Windows PowerShell

  • Aynı anda bir komuttan çıktıyı görüntülemek ve kaydetmek için:
ipconfig | tişört Çıktı dosyası.Txt

Bu, komutun standart çıktısını görüntüler ipconfig -de konsol penceresi ve aynı anda dosyaya bir kopyasını kaydeder OutputFile.txt.

  • Tüm çalışmayı görüntülemek ve kaydetmek için süreçler, yalnızca svc ile başlayan ve 1000'den fazlasına sahip programlar olacak şekilde filtrelendi kolları çıktı:
Get-Process | Nerede-Nesne { $_.İsim -sevmek "svc *" } | Tee-Nesne ABC.Txt | Nerede-Nesne { $_.Kulplar -gt 1000 }

Bu örnek, borulu girişin tişört filtrelenebilir ve bu tişört yalnızca 1000'den fazla tanıtıcıya sahip işlemlerin görüntülenmesi için tekrar filtrelenen çıktıyı görüntülemek için kullanılır ve filtrelenmemiş çıktıyı dosyaya yazar ABC.txt.

Ayrıca bakınız

Referanslar

  1. ^ "Tee için Adam Sayfası (posix Bölüm 1)". IEEE Std 1003.1, 2003 Sürümü, Bilgi Teknolojisi Standardı - Taşınabilir İşletim Sistemi Arayüzü (POSIX), Açık Grup Tabanlı Teknik Özellikler Sayı 6. Alındı 1 Aralık 2013.
  2. ^ "Unix'te, belirsiz bir şekilde adlandırılmış bazı komutlar ne anlama geliyor?". Alındı 3 Şubat 2012.
  3. ^ Paul S. Dayan (1992). OS-9 Guru - 1: Gerçekler. Galactic Industrial Limited. ISBN  0-9519228-0-7.
  4. ^ "reactos / reactos". GitHub.
  5. ^ "tee (1): stdin'den okuma / stdout / dosyalara yazma - Linux kılavuz sayfası". linux.die.net.
  6. ^ "ibiblio.org FreeDOS Paketi - tee (Unix benzeri)". www.ibiblio.org.
  7. ^ IBM. "IBM System i Sürüm 7.2 Programlama Qshell" (PDF). Alındı 5 Eylül 2020.
  8. ^ "sponge (1): stdin'i ıslat / dosyaya yaz - Linux kılavuz sayfası". linux.die.net.
  9. ^ "GNU Coreutils: tee çağrısı". Alındı 3 Şubat 2016.

daha fazla okuma

Dış bağlantılar