Kedi (Unix) - cat (Unix) - Wikipedia

kedi
Orijinal yazar (lar)Ken Thompson,
Dennis Ritchie
Geliştirici (ler)AT&T Bell Laboratuvarları
İlk sürüm3 Kasım 1971; 49 yıl önce (1971-11-03)
İşletim sistemiUnix, Unix benzeri, Plan 9, Cehennem
TürKomut

kedi bir standart Unix yardımcı programı dosyaları sırayla okuyan standart çıktı. İsim, fonksiyonundan türetilmiştir.kedienate dosyaları.

Tarih

kedi eski versiyonlarının bir parçasıydı Unix, Örneğin., Versiyon 1 ve değiştirildi pr, bir PDP-7 ve Multics ekrana tek bir dosya kopyalamak için yardımcı program.[1]

Versiyonu kedi paketlenmiş GNU Coreutils Torbjorn Granlund tarafından yazılmıştır ve Richard Stallman.[2]

Kullanım

Tek Unix Spesifikasyonu operasyonunu tanımlar kedi Dosyaları argümanlarında verilen sırayla okumak, içeriklerini standart çıktıya aynı sırayla yazmak. Spesifikasyon, bir seçenek işaretinin desteklenmesini zorunlu kılar, sen tamponsuz çıktı için, yani her baytın okunduktan sonra yazılması anlamına gelir. GNU kullananlar gibi bazı işletim sistemleri Çekirdek Araçlar, bunu varsayılan olarak yapın ve bayrağı yoksayın.[3]

Giriş dosya adlarından biri tek bir kısa çizgi olarak belirtilmişse (-), sonra kedi sıranın o noktasındaki standart girdiden okur. Hiçbir dosya belirtilmezse, kedi yalnızca standart girdiden okur.

Komuta-sözdizimi dır-dir:

kedi [seçenekler] [dosya_ adları]

Seçenekler

Bazılarına örnek kedi seçenekler:[4]

  • -b (GNU: --number-nonblank), sayı boş olmayan çıktı satırları
  • -e ima eder -v ancak satır sonu karakterlerini de şu şekilde görüntüler: $ (Yalnızca GNU: -E aynı, ama ima etmeden -v)
  • -n (GNU: --numara), tüm çıktı satırlarını numaralandırın
  • -s (GNU: --squeeze-blank), birden fazla bitişik boş satırı sıkıştırın
  • -t ima eder -v, aynı zamanda sekmeleri şu şekilde görüntüler: ^ I (GNU: -T aynı, ama ima etmeden -v)
  • -u stdout için arabelleğe alınmamış G / Ç kullanın. POSIX, bu seçenek olmadan davranışı belirtmez.
  • -v (GNU: --show-nonprinting), sekmeler ve satır sonu karakteri dışında yazdırılmayan karakterleri görüntüler

Kullanım durumları

kedi bir dosyayı, giriş akışında düz metin veya ikili veri bekleyen bir programa yönlendirmek için kullanılabilir. kedi bitiştirirken ve çıktı alırken metin olmayan baytları yok etmez. Bu nedenle, iki ana kullanım durumu metin dosyaları ve belirli biçimle uyumlu ikili dosya türleridir.

Metnin birleştirilmesi, aynı eski kodlamayı kullanan metin dosyalarıyla sınırlıdır, örneğin ASCII. kedi içeren Unicode metin dosyalarını birleştirmenin bir yolunu sağlamaz. Bayt Sırası İşareti veya birbirinden farklı metin kodlamaları kullanan dosyalar.

Birçok yapılandırılmış ikili veri kümesi için, ortaya çıkan birleştirilmiş dosya geçerli olmayabilir; örneğin, bir dosyanın benzersiz bir üstbilgisi veya altbilgisi varsa, sonuç bunları sahte bir şekilde kopyalar. Ancak bazı multimedya için dijital kapsayıcı formatları, elde edilen dosya geçerlidir ve bu nedenle kedi dosya eklemek için etkili bir yol sağlar. Video akışları, önemli bir dosya örneği olabilir. kedi sorunsuz bir şekilde birleştirebilir, ör. MPEG program akışı (MPEG-1 ve MPEG-2) ve DV Temelde basit paket akışları olan (Dijital Video) biçimleri.

Örnekler

KomutAçıklama
cat dosya1.txt Dosyanın içeriğini görüntüle
cat dosya1.txt dosya2.txtİki metin dosyasını birleştirin ve sonucu terminalde görüntüleyin
cat file1.txt file2.txt> newcombinedfile.txtİki metin dosyasını birleştirin ve bunları yeni bir dosyaya yazın
cat> newfile.txtNewfile.txt adlı bir dosya oluşturun. İstenen girişi yazın ve bitirmek için CTRL + D tuşlarına basın. Metin, newfile.txt dosyasında olacaktır.
cat -n dosya1.txt dosya2.txt> newnumberedfile.txt-N seçeneğiyle bazı cat uygulamaları satırları da numaralandırabilir
cat dosya1.txt> dosya2.txtFile1.txt içeriğini file2.txt dosyasına kopyalayın
cat dosya1.txt >> dosya2.txtFile1.txt içeriğini file2.txt dosyasına ekleyin
cat dosya1.txt dosya2.txt dosya3.txt | sırala> test4Dosyaları birleştirin, tüm satır kümesini sıralayın ve çıktıyı yeni oluşturulan bir dosyaya yazın
cat dosya1.txt dosya2.txt | Daha azGirdi olarak dosya1 ve dosya2'nin birleştirilmesiyle "daha az" programı çalıştırın
komut | kediDoğrudan TTY'ye yazarken "command" özel davranışını (ör. Sayfalama) iptal edin (aşağıdaki UUOC ile karşılaştırın)

Unix kültürü

Jargon dosyası tanımı

Jargon Dosyası 4.4.7 sürümü bunu tanım olarak listeliyor kedi:

  1. Duraklamadan tüm bir dosyayı ekrana veya başka bir çıkış havuzuna püskürtmek için (syn. Blast).
  2. Uzantı olarak, büyük miktarda veriyi hazırlıksız bir hedefe boşaltmak veya dikkatlice göz atma niyeti olmadan. Kullanım: aptalca kabul edilir. Unix siteleri dışında nadirdir. Ayrıca bakınız gg, BLT.

Unix hayranları arasında kedi (1) mükemmel bir örnek olarak kabul edilir Kullanıcı arayüzü tasarım, çünkü dosya içeriklerini dosyalar arasında boşluk veya başlıklar gibi ayrıntılar olmadan sunar ve dosyaların metin satırlarından oluşmasını gerektirmediğinden, ancak her türlü veriyle çalışır.

Unix eleştirmenleri arasında, kedi (1) ne yazık ki belirsiz adı nedeniyle kötü kullanıcı arabirimi tasarımının kanonik örneği olarak kabul edilir. Çok daha sık tek bir dosyayı patlatmak için kullanılır. standart çıktı iki veya daha fazla dosyayı birleştirmekten daha fazla. İsim kedi çünkü önceki işlem, diyelim ki, LISP 's cdr.

Kedinin gereksiz kullanımı

Kedinin gereksiz kullanımı (UUOC), yalnızca kullanıcıya kolaylık sağlayan bir işlev sağlayan komut satırı yapıları için yaygın Unix jargonudur.[5] Bu aynı zamanda "kedi istismarı" olarak da adlandırılır. UUOC örneklerini düzeltme etkinliği bazen denir geçişsizleştirme.[6] Ortak bir örnek kedi ödülde suistimal verildi:

kedi dosya adı | komut arg1 arg2 argn

Bu, kullanılarak yeniden yazılabilir yeniden yönlendirme nın-nin stdin bunun yerine, aşağıdaki biçimlerden birinde (ilki daha gelenekseldir):

 komut arg1 arg2 argn 

Diğer avantajların ötesinde, giriş yeniden yönlendirme formları, komut gerçekleştirmek rasgele erişim dosyada, oysa kedi örnekler vermez. Bunun nedeni, yeniden yönlendirme formunun dosyayı stdin dosya tanımlayıcısı olarak açmasıdır. komut tamamen erişebilirken kedi form, verileri bir bayt akışı olarak sağlar.

Başka bir yaygın durum kedi gereksiz, bir komutun varsayılan olarak stdin üzerinde çalıştığı, ancak dosya adı bir argüman olarak verilirse bir dosyadan okuyacağı yerdir. Bu, birçok yaygın komut için geçerlidir; aşağıdaki örnekler

 kedi "$ dosya" | grep "$ desen" kedi "$ dosya" | Daha az

bunun yerine şöyle yazılabilir

 grep "$ desen" "$ dosya" eksi "$ dosya"

Ortak bir interaktif kullanımı kedi tek bir dosya için, bir dosyanın içeriğini standart çıktıya çıkarmaktır. Bununla birlikte, çıktı borulu ise veya yeniden yönlendirilmişse, kedi gereksizdir.

Bir kedi Soldan sağa borulu bir akışı okumak kavramsallaştırmak daha kolay olabileceğinden, UUOC ile yazılması okunabilirlik nedenlerinden dolayı hala tercih edilebilir.[7] Ayrıca, yeniden yönlendirme sembolünün ">" yerine "<" (genellikle klavyelerde bitişiktir) yanlış bir şekilde kullanılması bir dosyanın içeriğini kalıcı olarak silebilir, başka bir deyişle yuhalama ve bundan kaçınmanın bir yolu, kedi borularla. Karşılaştırmak:

 komut  out  out

ile:

kedi | komut | command2> out

tac

tac bir Linux son satırdan başlayarak dosyaları satır satır görüntülemeye izin veren komut. (tac, her bir satırın içeriğini tersine çevirmez, yalnızca satırların sunulduğu sırayı tersine çevirir.) kedi.

Kullanım:

Kullanım: tac [SEÇENEK] ... [DOSYA] ... Her bir DOSYAYI standart çıktıya yazın, önce son satır.FILE olmadan veya FILE - olduğunda, standart girişi okuyun.Kısa seçenekler için uzun seçenekler için zorunlu argümanlar zorunludur çok. -b, --before ayırıcıyı -r yerine önce iliştirin, --regex ayırıcıyı normal ifade olarak yorumlar -s, --separator = STRING ayırıcı olarak satırsonu yerine STRING kullanın --help bu yardımı görüntüleyin ve çıkın --version sürüm bilgilerini verir ve çıkar

Ayrıca bakınız

Referanslar

  1. ^ McIlroy, M. D. (1987). Bir Araştırma Unix okuyucusu: Programcı El Kitabı, 1971–1986'dan açıklamalı alıntılar (PDF) (Teknik rapor). CSTR. Bell Laboratuvarları. 139.
  2. ^ https://linux.die.net/man/1/cat
  3. ^ GNU Coreutils. "GNU Coreutils kılavuzu", GNU, 1 Mars 2017 tarihinde alındı.
  4. ^ OpenBSD kılavuz sayfası ve GNU Core Utiltites kedi sürümü
  5. ^ comp.unix.shell. "UUOC'nin erken ödül örneği (1994)", Google Grupları aracılığıyla comp.unix.shell 1 Mars 2017 tarihinde alındı.
  6. ^ Gül, John (2012). "Demoggification". Youtube. SoutEast LinuxFest.
  7. ^ Nguyen, Dan. "Stanford Hesaplamalı Gazetecilik Laboratuvarı". stanford.edu. Alındı 2017-10-08.

Dış bağlantılar