Günlük Linux komutları arasında en çok kullanılanlardan biri de dosyaları görüntülemek için kullanılan basit bir araç olan “cat” komutu. Peki gerçekten öyle mi? Aslında cat komutunun sandığınızdan çok daha fazla özelliği var. Temel kullanımdan ileri düzey kullanımlara kadar cat komutunu kullanabileceğiniz birçok yol bulunuyor.
Linux için Cat Komutu: Beklediğinizden Fazlası
1. Birkaç Dosyayı Birleştirme
Cat için en yaygın kullanım olmasa da aracın asıl amacı dosyaları birleştirmek olduğu için buradan başlayacağız. “Concatenate” ifadesinin ortasındaki “cat”, aracın adının nereden geldiğini açıklıyor. Bu terime aşina değilseniz “birleştirmek” anlamına geliyor. Yani cat, tamamen dosyaları birleştirmek için kullanılıyor.
Diyelim ki “foo” adında şu şekilde görünen bir dosyanız var:
An example file
With a couple of lines
Ayrıca şu şekilde görünen ikinci bir dosya olan “bar” da var:
This is just another example
İkisini birleştirmek için cat komutunu çalıştırıp bu dosya adlarını argüman olarak geçirebilirsiniz:
cat foo bar
Cevap olarak ilk dosyanın tam içeriğini, ardından ikinci dosyanın tam içeriğini göreceksiniz; cat, ikisini birleştirdi:

Bu pek kullanışlı görünmeyebilir ancak muhtemelen bir noktada dosyaları birleştirme ihtiyacı duyacaksınız. Günlük dosyalarını birleştirebilir veya bir metnin birkaç bölümünü tek bir çalışmada birleştirebilirsiniz. Ayrıca daha kolay taşıma veya depolama için dosyaları birleştirebilirsiniz. Fakat “tar” komutu, genellikle bu tür bir görev için daha uygun olabilir.
2. Tek Bir Dosyayı Görüntüleme
cat’e yalnızca tek bir dosya argümanı gönderirseniz ne olacağını merak ediyor musunuz? Neyse ki araç, hata üretmek yerine bu durumu mantıklı bir varsayılan davranışla ele alıyor.
cat foo

cat, tek bir dosya argümanıyla o dosyanın içeriğini çıktı olarak verir. Bunun tek seferde, durmadan yapılacağını unutmayın; bu nedenle ekranda daha uzun dosyaları görüntülemek için terminalinizi kaydırmanız gerekebilir.
Uyarı: Bir dosyayı cat komutuyla görüntülerken dikkatli olun. Metin dosyaları sorun oluşturmaz ancak çalıştırılabilir bir dosyayı terminalinizde yazdırırsanız anlamsız görünecek ve hatta ekranınızı (geçici olarak) bozabilir.
“cat”in bu kullanımı, özellikle küçük boyutlu bir metin dosyasının içeriğine hızlıca göz atmak istediğinizde ideal. Ancak daha uzun dosyalar veya daha ayrıntılı olarak incelemek istediğiniz dosyalar için bu kullanım daha az kullanışlı olabilir. Bu gibi durumlarda, more veya less gibi bir komut işinizi görebilir.
3. Bir Dosyaya Satır Numaraları Ekleme
Programcıysanız veya iş birliği içinde çalışıyorsanız bir dosyadaki satır numaralarına başvurmak faydalı olabilir. Metin editörleri bu özelliği içerse de bir dosyadaki satır numaralarını hızlı bir şekilde görüntülemek için cat başka bir seçenek:
cat -n foo

-n seçeneği, çıktı satırlarını 1’den başlayarak numaralandırır.
Uyarı: cat’in farklı sürümleri farklı şekilde davranır. GNU coreutils 9.4 sürümü (Ubuntu 24.04), çıktının her satırını her seferinde 1 artırarak numaralandırır. Ancak macOS 26.0’da cat, her girdi dosyasını ayrı ayrı numaralandırır ve her dosyada sayıyı sıfırlar.
cat komutu, boş olmayan çıktı satırlarını numaralandıran -b seçeneğini de destekler. Bu, bazı durumlarda faydalı olabilir ancak derleyiciler gibi araçlar boş satırlar da dâhil olmak üzere her zaman satır numaralarını bildireceğinden programlama için bundan kaçınmalısınız.
4. İki Dosyayı Birleştirme ve Üçüncü Bir Dosya Olarak Kaydetme
cat komutunun asıl faydası, özellikle yönlendirme ve yöneltme (piping) özellikleri gibi Linux kabuğunun gücüyle birleştirildiğinde ortaya çıkar. Örneğin çıktıyı hemen görüntülemek için ekrana göndermek yerine başka bir yere gönderebilirsiniz.
En sık karşılaşılan durumlardan biri, iki dosyayı birleştirmek ve üçüncü bir dosya olarak kaydetmek:
cat foo bar > hum
Bu kalıp o kadar kullanışlı ki, muhtemelen hiç çaba sarf etmeden bile ezberleyeceksiniz. Çıktı yönlendirme karakteri “>”, tüm çıktının başka bir yere; bu durumda adlandırılmış bir dosyaya gönderilmesine neden olur. Dosya henüz mevcut değilse oluşturulur, mevcutsa üzerine yazılır.
5. Metin Dosyası Oluşturma veya Güncelleme
Aynı çıktı yönlendirmesini kullanarak, terminaliniz ve cat komutundan başka hiçbir şeye ihtiyaç duymadan basit metin dosyaları oluşturabilirsiniz. Bu en kolay yaklaşım olmayabilir ancak muhtemelen en verimli yöntem ve belirli durumlarda faydalı olabilir; favori metin düzenleyiciniz her zaman kullanılabilir olmayabilir.
Etkileşimli bir şekilde metin dosyası oluşturmak için herhangi bir argüman olmadan cat komutunu çalıştırın ve çıktısını istediğiniz bir dosyaya yönlendirin. Örneğin:
cat > newfile.txt
Terminaliniz, giriş modunda olduğunu belirten başlangıçta bir komut satırı olmadan yeni bir satır yazdırır. Buraya yazdığınız her şey terminalinizde gösterilecek ve satır başında Ctrl + D tuşlarına basana kadar dosyaya eklenecek. Bu, EOF (dosya sonu) sinyalini verir ve bu noktada cat komutu sona erer ve kontrolü kabuğa (shell) geri verir.
Benzer şekilde, bir dosyaya ekleme yapmak için “>>” operatörünü kullanabilirsiniz:
cat >> notes
Bu yöntemleri kullanarak basit bir yapılacaklar dosyası oluşturabilir veya notlar alabilirsiniz.
6. Bir Dosyayı Bir Komuta Yönlendirme
Son olarak cat’in en tartışmalı kullanımı da “cat kelimesinin gereksiz kullanımı” olarak adlandırılan kullanım biçimi. Birçok yeni başlayan (ve dürüst olmak gerekirse daha deneyimli kullanıcılar da) şu kalıbı kullanma alışkanlığına kapılır:
cat filename | command
Örneğin, cat file | grep searchword veya cat file | tr ‘!’ ‘.’
Aslında bunda yanlış bir şey yok ancak bazı kişiler daha iyi alternatifler olduğunu belirtmekte oldukça ısrarcı. “grep” gibi komutlar, dosya adlarını doğrudan argüman olarak kabul eder; bu nedenle “grep searchword file” komutu, “cat file | grep searchword” işlemine denktir fakat daha az yazım, daha az işlem ve biraz daha verimli çalışır. “tr” gibi bazı komutlar ise dosya adları üzerinde işlem yapmaz ama yine de yeniden yönlendirme ile bir dosyanın içeriği üzerinde işlem yapmalarını sağlayabilirsiniz:
command < filename
Bu sefer giriş yönlendirmesi için “daha az” sembol kullanılıyor ancak kavram aynı.
Bu cat içermeyen eş değerler ayrıca daha okunaklı olabilir. Bu da onları komut dosyalarında veya belgelerde kullanım için tercih edilir hâle getirir. Ancak cat’in bu şekilde ara sıra kullanılmasında aslında hiçbir sakınca olmadığını unutmayın. Günümüz donanımlarında kaynak kullanımındaki fark çok az ve cat’i bu şekilde kullanmak, bir komut zincirini parça parça oluşturmayı kolaylaştırabilir.
En önemli çıkarım, dosya yeniden yönlendirmenin de yöneltme (piping) kadar kullanışlı olabileceği. Gözden kaçırmak kolay olsa da bu özellik, Linux’un güçlü yanlarından biri ve gerçekten ihtiyaç duyacağınız tüm durumlar için öğrenmeye değer.
Kaynak: www.howtogeek.com