Cat (Unix)

**<code>cat</code>**, dosyaları sırasıyla okuyan ve standart çıktıya yazan POSIX standartlı bir Unix komutudur.

Komut ismi, komutun dosyaları peşpeşelenmesi işlevine işaret eden İngilizce "(con)**cat**enate" (Latince *catenare*, "zincirlemek") kelimesinden türetilmiştir.

## Tarihçe

`cat`, bir dosyayı ekrana kopyalamak için kullanılan bir PDP-7 ve Multics komutu olan `pr` komutunun yerini alarak ilk Unix sürümlerinde (ör. Version 1) yer aldı. Bu versiyon, Ken Thompson ve Dennis Ritchie tarafından yazılmıştır. GNU *coreutils*'te paketlenmiş `cat` sürümü ise Torbjorn Granlund ve Richard Stallman tarafından yazılmıştır. ReactOS sürümü ise David Welch, Semyon Novikov ve Hermès Bélusca tarafından yazılmıştır.

Zamanla, `tac` ve `bat` gibi alternatif araçlar da farklı ve yeni özellikleriyle erişilebilir hale geldi.

## Kullanım

Tek Unix Şartnamesi tanımına göre, `cat`, dosyaları argüman sırasına göre okur ve dosya içeriklerini aynı sırada standart çıktıya yazdırır. Şartname, arabelleksiz çıktı (her bayt okunduktan sonra arabelleğe aktarılmadan yazılır) için *u* bayrağını zorunlu kılar. GNU Coreutils gibi bazı işletim sistemleri, bunu varsayılan olarak yapar ve bayrak desteğini görmezden gelir.

Eğer girdi dosya adlarından biri tek bir tire (-) olarak belirtilirse, o noktada `cat` standart girdiden okur. Eğer dosyalar belirtilmezse, `cat` sadece standart girdiden okur.

Komut-sözdizimi:

  cat [seçenek] [dosya_isimleri]

### Seçenekler
Bazı `cat` seçenekleri şunlardır:

*  (GNU: ): Dosyanın **boş olmayan** satırlarını numaralarıyla birlikte görüntüle.
*  (GNU: ): Bütün çıktı satırlarının sayısı.
*  (GNU: ): Satır sonu karakterlerini $ olarak göster. 
*  (GNU: ): Tüm çıktı satırlarına numara ekle.
*  (GNU: ): Birbirine bitişik birden fazla boş satırı tek bir boş satıra sıkıştır.
*  (GNU: ): Tab karakterlerini ^I olarak göster.
* : Stdout için tampon kullanmadan I/O kullan. POSIX, Bu seçenek olmadan  davranışını belirtmez.
*  (GNU: ): Sekme karakterleri ve satır sonu karakterleri hariç olmak üzere, yazdırılmayan karakterleri görüntüle.

### Örnekler

### Kullanım alanları

`cat`, girdi akışında düz metin veya ikili veri bekleyen bir programa dosya yönlendirmek için kullanılabilir. `cat`, birleştirme ve çıktı yaparken metin olmayan baytları yok etmez. Bu nedenle, iki ana kullanım alanı, metin dosyaları ve belirli format uyumlu ikili dosya türleridir.

Metin birleştirmesi, örneğin ASCII gibi aynı geleneksel kodlamayı kullanan metin dosyalarıyla sınırlıdır. `cat`, birleştirilecek Unicode metin dosyalarının Bayt Sırası İşareti olan veya birbirinden farklı metin kodlamaları kullanan dosyaların birleştirilmesi için bir çözüm sağlamaz.

Birçok yapılandırılmış ikili veri seti için, sonuçta birleştirilen dosya geçerli olmayabilir; örneğin, bir dosyanın benzersiz bir başlık veya altbilgisi varsa, sonuç yanlışlıkla bunları çoğaltır. Ancak, bazı multimedya içerik biçimi için, sonuçta oluşan dosya geçerlidir ve bu nedenle `cat`, dosyaları birleştirmenin etkili bir yolunu sağlar. Video akışları, örneğin (MPEG-1 ve MPEG-2) MPEG program akışı ve DV (format) (Dijital Video) formatları, temel olarak paketlerin basit akışlarıdır ve `cat` tarafından sorunsuzca birleştirilebilir.

## Ayrıca bakınız

* Unix programlarının listesi
* split

## Dış bağlantılar
* ubuntu Türkiye wiki'si cat başlığı
* cat için GNU projesi dokumantasyonu  (İngilizce)
* cat için FreeBSD dokumantasyonu  (İngilizce)

## Kaynakça