İçeriğe atla

cat (Unix)

Vikipedi, özgür ansiklopedi

cat
Orijinal yazar(lar)Ken Thompson,
Dennis Ritchie
Geliştirici(ler)Bell Labs
İşletim sistemiUnix,Unix benzeriUnix-like,Plan 9,Inferno,ReactOS
PlatformÇoklu platform
Türkomut
Lisanscoreutils:GPLv3+
ReactOS:GPLv2+
Resmî sitesicat

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.

cat,bir dosyayı ekrana kopyalamak için kullanılan birPDP-7veMulticskomutu olanprkomutunun yerini alarak ilkUnixsürümlerinde (ör.Version 1) yer aldı.[3]Bu versiyon,Ken ThompsonveDennis Ritchietarafından yazılmıştır.GNUcoreutils'te paketlenmişcatsü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,tacvebatgibi alternatif araçlar da farklı ve yeni özellikleriyle erişilebilir hale geldi.[6][7]

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 noktadacatstandart girdiden okur. Eğer dosyalar belirtilmezse,catsadece standart girdiden okur.

Komut-sözdizimi:

cat [seçenek] [dosya_isimleri]

Bazıcatseç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.
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 vecattarafı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]
  1. ^"ODTÜ cat dokümantasyonu sayfası".METU.27 Ocak 2012 tarihindekaynağındanarşivlendi.Erişim tarihi:27 Ocak2012.
  2. ^Shotts, William E., Jr. (2012).The Linux command line: A complete introduction(İngilizce). San Francisco: No Starch Press. s.53.ISBN1-59327-389-4.
  3. ^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.
  4. ^cat(1)LinuxKullanıcı komutlarıkılavuzu
  5. ^"reactos/cat.c at master · reactos/reactos · GitHub".github.com.28 Ağustos 2021 tarihindekaynağındanarşivlendi.Erişim tarihi: 28 Ağustos 2021.
  6. ^"tac(1) - Linux manual page".man7.org.23 Nisan 2014 tarihindekaynağındanarşivlendi.
  7. ^"sharkdp/bat".2 Aralık 2021. 1 Mayıs 2018 tarihindekaynağındanarşivlendi – GitHub vasıtasıyla.
  8. ^GNU Coreutils."GNU Coreutils manual"9 Mart 2023 tarihindeWayback Machinesitesindearşivlendi.,GNU,1 Mar 2017.
  9. ^OpenBSDmanual page and the GNU Core Utiltites version of cat