cat (Unix)
cat
,dosyaları sırasıyla okuyan ve standart çıktıya yazanPOSIXstandartlı birUnixkomutudur.[1][2]
Komut ismi, komutun dosyaları peşpeşelenmesi işlevine işaret edenİngilizce"(con)catenate "(Latincecatenare,"zincirlemek" ) kelimesinden türetilmiştir.
Tarihçe
[değiştir|kaynağı değiştir]cat
,bir dosyayı ekrana kopyalamak için kullanılan birPDP-7veMulticskomutu olanpr
komutunun yerini alarak ilkUnixsürümlerinde (ör.Version 1) yer aldı.[3]Bu versiyon,Ken ThompsonveDennis Ritchietarafından yazılmıştır.GNUcoreutils'te paketlenmişcat
sürümü iseTorbjorn GranlundveRichard Stallmantarafından yazılmıştır.[4]ReactOSsürümü ise David Welch, Semyon Novikov ve Hermès Bélusca tarafından yazılmıştır.[5]
Zamanla,tac
vebat
gibi alternatif araçlar da farklı ve yeni özellikleriyle erişilebilir hale geldi.[6][7]
Kullanım
[değiştir|kaynağı değiştir]Tek Unix Şartnamesitanı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ı (herbaytokunduktan sonra ara belleğe aktarılmadan yazılır) içinubayrağını zorunlu kılar. GNU Coreutils gibi bazı işletim sistemleri, bunu varsayılan olarak yapar ve bayrak desteğini görmezden gelir.[8]
Eğer girdi dosya adlarından biri tek bir tire (-) olarak belirtilirse, o noktadacat
standart girdiden okur. Eğer dosyalar belirtilmezse,cat
sadece standart girdiden okur.
Komut-sözdizimi:
cat [seçenek] [dosya_isimleri]
Seçenekler
[değiştir|kaynağı değiştir]Bazıcat
seçenekleri şunlardır:[9]
- -b(GNU:--number-nonblank): Dosyanınboş olmayansatırlarını numaralarıyla birlikte görüntüle.
- -n(GNU:--number): Bütün çıktı satırlarının sayısı.
- -e(GNU:-E): Satır sonu karakterlerini $ olarak göster.
- -n(GNU:--number): Tüm çıktı satırlarına numara ekle.
- -s(GNU:--squeeze-blank): Birbirine bitişik birden fazla boş satırı tek bir boş satıra sıkıştır.
- -t(GNU:-T): Tab karakterlerini ^I olarak göster.
- -u:Stdout için tampon kullanmadan I/O kullan.POSIX,Bu seçenek olmadan davranışını belirtmez.
- -v(GNU:--show-nonprinting): Sekme karakterleri ve satır sonu karakterleri hariç olmak üzere, yazdırılmayan karakterleri görüntüle.
Örnekler
[değiştir|kaynağı değiştir]Komut | Açıklama |
---|---|
cat dosya1.txt | Dosya içeriğini görüntüle. |
cat dosya1.txt dosya2.txt | İki metin dosyasını birleştir ve sonucu terminalde gösterin. |
cat dosya1.txt dosya2.txt > yeniDosya.txt | İki metin dosyasını birleştir ve bunları yeni bir dosyaya yaz. |
cat > yeniDosya.txt | yeniDosya.txt adında bir dosya oluştur. Komutun ardındanCtrl-D() tuş kombinasyonuna basılmalı. Bunun anlamı, dosyayadosya sonu(ing. EOF - End Of File) karakteri gönderilmesidir. |
cat -n dosya1.txt dosya2.txt > yeniDosya.txt | cat'in bazı uygulamaları, -n seçeneği ile satırlara numara verebilir. |
cat dosya1.txt > dosya2.txt | dosya1.txt dosyasının içeriğini dosya2.txt dosyasına kopya. |
cat dosya1.txt >> dosya2.txt | dosya1.txt dosyasının içeriğini var olan dosya2.txt dosyasına ekle. Eğer dosya2.txt yok ise, bu dosyayı oluştur. |
cat dosya1.txt dosya2.txt dosya3.txt | sort > dosya4.txt | Dosyaları birleştir; tüm satırların tamamını sırala ve çıktıyı yeni oluşturulan bir dosyaya yaz. |
cat dosya1.txt dosya2.txt | less | lessprogramını, dosya1 ve dosya2 dosyalarının birleştirilmiş haliyle girdi olarak çalıştır. Büyük (çok satırlı) dosyalarda,cat'inlessile birlikte kullanılması tavsiye edilir, çünkü örneğin 1000 satırlık bir dosya görüntüleneceği zaman hiç kullanışlı olmaz, en üst satırı göremeden en alt satıra gelinmiş olur, fakatlessgibi bir sayfalama komutu ile bilrikte kullanılırsa dosyanın en başından başlayarak sayfa sayfa dosya okunabilir. |
cat dosya1.txt | grep ornek | dosya1.txt dosyasındaki "ornek" kelimesinin örneklerini bul. |
command | cat | UUOC (Useless Use of Cat)durumunda, özellikle sayfalama gibi özel davranışları iptal etmek içincommandın doğrudan TTY'ye yazdığında iptal edin. |
Kullanım alanları
[değiştir|kaynağı değiştir]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ğinASCIIgibi aynı geleneksel kodlamayı kullanan metin dosyalarıyla sınırlıdır.cat
,birleştirilecek Unicode metin dosyalarınınBayt Sırası İşaretiolan 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ı multimedyaiçerik biçimiiçin, sonuçta oluşan dosya geçerlidir ve bu nedenlecat
,dosyaları birleştirmenin etkili bir yolunu sağlar. Video akışları, örneğin (MPEG-1 ve MPEG-2)MPEG program akışıveDV (format)(Dijital Video) formatları, temel olarak paketlerin basit akışlarıdır vecat
tarafından sorunsuzca birleştirilebilir.
Ayrıca bakınız
[değiştir|kaynağı değiştir]Dış bağlantılar
[değiştir|kaynağı değiştir]- ubuntu Türkiye wiki'si cat başlığı[ölü/kırık bağlantı]
- cat için GNU projesi dokumantasyonu6 Ocak 2015 tarihindeWayback Machinesitesindearşivlendi.(İngilizce)
- cat için FreeBSD dokumantasyonu5 Mart 2016 tarihindeWayback Machinesitesindearşivlendi.(İngilizce)
Kaynakça
[değiştir|kaynağı değiştir]- ^"ODTÜ cat dokümantasyonu sayfası".METU.27 Ocak 2012 tarihindekaynağındanarşivlendi.Erişim tarihi:27 Ocak2012.
- ^Shotts, William E., Jr. (2012).The Linux command line: A complete introduction(İngilizce). San Francisco: No Starch Press. s.53.ISBN1-59327-389-4.
- ^McIlroy, M. D. (1987).A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986(PDF).CSTR (İngilizce). Bell Labs. 139. 11 Kasım 2017 tarihinde kaynağındanarşivlendi(PDF).Erişim tarihi: 16 Şubat 2023.
- ^LinuxKullanıcı komutlarıkılavuzu –
- ^"reactos/cat.c at master · reactos/reactos · GitHub".github.com.28 Ağustos 2021 tarihindekaynağındanarşivlendi.Erişim tarihi: 28 Ağustos 2021.
- ^"tac(1) - Linux manual page".man7.org.23 Nisan 2014 tarihindekaynağındanarşivlendi.
- ^"sharkdp/bat".2 Aralık 2021. 1 Mayıs 2018 tarihindekaynağındanarşivlendi – GitHub vasıtasıyla.
- ^GNU Coreutils."GNU Coreutils manual"9 Mart 2023 tarihindeWayback Machinesitesindearşivlendi.,GNU,1 Mar 2017.
- ^OpenBSDmanual page and the GNU Core Utiltites version of cat