man/text
man · Metin İşleme

$ cat

Bölüm 1 · Metin İşleme

dosyaları birleştirir ve yazdırır

Özet

cat [-belnstuv] [file ...]

Açıklama

cat, dosyaları sıralı olarak okur ve standart çıktıya yazar. Dosya terimleri komut satırı sırasına göre işlenir.

Dosya tek bir tire (-) ise veya hiçbir dosya belirtilmemişse, cat standart girdiden okur.

Dosya bir UNIX alanı soketi (UNIX domain socket) ise, cat ona bağlanır ve EOF karakterine kadar okur. Bu, inetd(8) içinde bulunan UNIX alanı bağlama özelliğini tamamlar.

Seçenekler

  • -b: Boş olmayan çıktı satırlarını 1'den başlayarak numaralandırır.
  • -e: Yazdırılamayan karakterleri görüntüler; ayrıntılar için -v seçeneğine bakın. Ayrıca her satırın sonunda dolar işareti ($) görüntüler.
  • -l: Standart çıktı dosya tanımlayıcısı üzerinde özel bir tavsiyeli kilit (exclusive advisory lock) ayarlar. Bu kilit, F_SETLKW komutuyla fcntl(2) kullanılarak ayarlanır. Çıktı dosyası zaten kilitliyse, cat kilit elde edilene kadar bloke olur.
  • -n: Çıktı satırlarını 1'den başlayarak numaralandırır.
  • -s: Birden fazla bitişik boş satırı sıkıştırarak çıktının tek satır aralıklı olmasını sağlar.
  • -t: Yazdırılamayan karakterleri görüntüler; ayrıntılar için -v seçeneğine bakın. Ayrıca sekme karakterlerini ^I olarak görüntüler.
  • -u: Çıktı arabelleğe almayı devre dışı bırakır.
  • -v: Yazdırılamayan karakterleri görünür olacak şekilde görüntüler. Kontrol karakterleri control-X için ^X olarak yazdırılır; silme karakteri (sekizlik 0177) ^? olarak yazdırılır. ASCII olmayan karakterler, M- ve ardından gelen düşük 7 bitlik karakter olarak yazdırılır.

Çıkış Durumu

cat, başarı durumunda 0, bir hata oluştuğunda ise >0 değeriyle çıkar.

Örnekler

file1 dosyasının içeriğini standart çıktıya yazdırmak:

cat file1

file1 ve file2 dosyalarının içeriğini sırasıyla file3 dosyasına yazdırmak:

cat file1 file2 > file3

Bu komut, file3 zaten mevcutsa içeriğini sıfırlar. Yönlendirme hakkında daha fazla bilgi için kabuğunuzun, örneğin sh(1), kılavuz sayfasına bakın.

Dosya ve standart girdiyi aynı komutta sırayla okumak:

cat file1 - file2 - file3

Bu komut file1 içeriğini yazdırır, standart girdiden EOF (^D) alana kadar gelen verileri yazdırır, file2 içeriğini yazdırır, standart girdiyi yeniden okur ve son olarak file3 içeriğini yazdırır.

Standart girdi bir dosyayı belirtiyorsa, dosyanın tüm içeriği cat ilk - terimiyle karşılaştığında zaten okunmuş ve yazdırılmış olacağından komut satırındaki ikinci tirenin etkisi olmaz.

Ayrıca Bakınız

head(1), more(1), pr(1), sh(1), tail(1), vis(1), zcat(1), fcntl(2), setbuf(3)

Rob Pike, "UNIX Style, or cat -v Considered Harmful", USENIX Summer Conference Proceedings, 1983.

Standartlar

cat, IEEE Std 1003.2-1992 ("POSIX.2") belirtimiyle uyumludur.

[-belnstv] bayrakları bu belirtime yapılan uzantılardır.

Tarihçe

Bir cat aracı ilk olarak Version 1 AT&T UNIX sürümünde yer almıştır. Dennis Ritchie ilk kılavuz sayfasını tasarlamış ve yazmıştır. Bu sayfa cat için yazılmış gibi görünmektedir.

Hatalar

Çıktı yönlendirmesini gerçekleştirmek için kullanılan kabuk dili mekanizması nedeniyle, cat file1 file2 > file1 komutu file1 içindeki orijinal verilerin yok olmasına neden olur.

cat, -t veya -v seçeneği etkinken çok baytlı karakterleri tanımaz.