Hiç “daha ​​az” varken “kedi” kullanmak için bir neden var mı?


59

catDosyaları görüntülemek için kullanırdım . Sonra lessbunun genellikle daha iyi olduğunu ve dosyanın birkaç düzine satırdan daha uzun olması durumunda bir zorunluluk olduğunu öğrendim .

Sorum şu: Hiç kullanmak catyerine bir sebep var mı less? catDaha iyi bir çözümün olduğu herhangi bir durum var mı ?


17
lessve catfarklı problemleri çözerler ve her biri kendi problem alanındaki diğerlerinden daha iyidir
David Heffernan

2
Sadece catçıkışını lesssonradan boruya aktarıyorum.
FUZxxl

1
Sık sık kullanmak catkonsola çok kısa dosyaları yazdırmak için, dosyaları /procve /sysçok iyi adaylardır. Bu şekilde birden fazla dosyanın içeriğini aynı anda görebilirim.
Feuermurmel

Yanıtlar:


20

Kişisel viewolarak statik içerik veya tail -fdinamik içerik tercih ediyorum .

Yine de, bu sorunuza cevap vermiyor. "Neden daha azına sahipseniz neden daha fazlasını kullanıyorsunuz" ;-)

Ama kedinin daha az olmasını tercih ettiğim durumlar var: Genellikle X11 pencereleri ile çalışırım. Bu pencerelerde, yüzlerce satıra ayarlanabilen kaydırma tamponu bulunur.

Yapmak catiçin - 200 satır diyelim ve fareyi kaydırma çubuğuyla kullanmak less, bu durumlarda kullanmaktan daha rahat .


4
By viewsize zamanki demek vim -R, yoksa bu adla başka bir şey var mı?
Manatwork

Hayır - salt okunur modda sadece vi (veya vim). CentOS bu takma adı varsayılan olarak ayarlar. Bu, güvenli bir dizindeki bir dosyayı görüntülerken HIDS'i tetiklemez.
Nils

2
less +Fne tail -fyapar.
legends2k

2
Aslında viewbir takma ad değildir; bu bir bağlantıdır ( viveya veya vim). ne zaman başladığına vibakar argv[0](altında hangi adın kullanıldığını görmek için) ve eğer öyleyse viewya da rviewsalt okunur modunu (yazmış gibi vim -R) ayarlar .
G-Man

91

Her iki komut da bir dosyanın içeriğini görüntülemenizi sağlasa da, asıl amaçları oldukça farklıdır.

az yeteneklerini genişletir daha . İkincisi, bir seferde bir tek ekran içeriğini görüntülemek için yaratıldı. daha az geri hareketler ve daha iyi bellek yönetimi gibi özellikler ekler (ilk satırları görmeden önce tüm dosyayı okumak gerekmez).

cat dosyaları birleştirir ve sonucu standart çıktıya yazdırır. Yalnızca bir dosya sağlarsanız, o dosyanın içeriğini görürsünüz. Birden fazla dosya sağladığınızda 'güçlü' hale gelir. İyi bir örnek split ve cat kombinasyonudur . İlk komut büyük bir dosyayı küçük parçalara böler. İkincisi daha sonra küçük bölümleri tek bir dosyada birleştirir.

Sorunuza geri dönersek, kedilerin etkileşime girmeden dosyaların tamamen okunmasını (veya birleştirilmesini) gerektiren özerk bir komut dosyasında tercih edilir. Dosya görüntüleme açısından daha çok bir zevk meselesi olduğunu düşünüyorum.


4
lessher zaman olmayan, içinde arama yapmanızı sağlar cat.
Bernhard

@Bernhard: Kedi çıktısında bir grep yapmaya ne dersiniz?
user3527975, 14:17

23

Genellikle catdosyadaki bir şeye dayanarak bir komut yazmam gerektiğinde kullanırım. catKabuk istemine erişirken (küçükse) dosyayı görebildiğiniz için daha kullanışlıdır. Aynı zamanda boru kaplamasına da izin verir.


3
Bir dosya için, standart girişi yeniden yönlendirmek de mümkündür ve genellikle tercih edilir.
AProgrammer

17
Kedinin daha iyi bir çözüm olduğu bir durum var mı?

Birden fazla dosyayla ilgileniyorsanız ve birleştirmek istediğinizde.

Man sayfasından:

cat f - g
        Output f's contents, then standard input, then g's contents.

15

Tek amacı o şiddetle savunanlar var catdolandırmaya olan kedi enate dosyaları. Diğer her kullanım için, more(veya less) vardır.

Ancak bu oldukça önemli bir gerçeği göz önüne almaz: yazması catgereken bir karakterdir. Bu komutları o kadar sık ​​kullanırım ki, bir karakter daha az beyinsizdir.

Başka bir neden, bir dosya oluşturmak istediğinizde. Genellikle web’deki metni kopyalayıp bu şekilde bir dosyaya yapıştırıyorum (komut istemi gösterilmiştir):

$ cat > filename
<Cmd-V>
<Ctrl-D>
$

Yani filenameyazma erişimi için bir dosya açarım , içeriği yapıştırırım ve Ctrl- tuşlarına basarak akışı kapatırım D. Ne lessyapamaz ne de morebir editör açmaktan daha hızlıdır.


4
Kabuğu olarak zsh kullanıyorsanız, onu $<filename( $istemi nerede ) bağlı stdin ile $ PAGER'ı çağıracak şekilde ayarlayabilirsiniz filename. Bu daha yazmak için daha az karakterdir cat.
Kevin Cathcart

@Kevin Bilmek güzel ama ben bir bash kullanıcısıyım.
Konrad Rudolph

2
Mac OS X'te, kullanıyorum pbpaste > filenameve X'in benzer bir şeyi olduğuna inanıyorum. Hala cathızlı dosya oluşturmak için kullanıyorum , yapıştırmak için değil.
cobbal

@cobbal Hehe, başka amaçlar için pbcopy/ kullanmama rağmen bunu hiç düşünmedim pbpaste.
Konrad Rudolph

1
Aslında iki karakter daha az - qçıkmak için basmanız gerekiyor less: D
Martin von Wittich 15:13

9

Bazen bunu yapan sayfalamayı lessistemez ve sadece bütün dosyayı kullanmak istersiniz cat.


4

Kullandığım catiçin grep(çoklu) dosyaları.

cat <filename1> [<filename2> <filename3>] | grep -i "string of interest"

grepDosya adlarını desteklediğini biliyorum , ancak aynı dosyayı farklı arama terimleri için okuyorsanız, arama teriminin satırdaki son şey olduğu bir komutu düzenlemek daha kolay olur, sonra ctrl + ok tuşlarını satırda geri döndürmek zorunda kalırsınız.


4

cat Birkaç ikili dosyayı tek bir büyük dosyada birleştirmek için kullanılabilir:

cat data.001 data.002 data.003 > bigdata.dat

3

Kullandığım less -FXyapar lessgibi davranmaya catbir dosyanın tek bir ekranda görüntülenebilir zaman. Gönderen less(1)man:

-F or --quit-if-one-screen
       Causes less to automatically exit if the entire file can be dis-
       played on the first screen.

-X or --no-init
       Disables sending the termcap initialization and deinitialization
       strings  to  the  terminal.   This is sometimes desirable if the
       deinitialization string does something unnecessary, like  clear-
       ing the screen.

2

Sanırım, şimdi Unix değişkenlerinin sıkılığı nedeniyle, pek çok insan kendi sistemlerini (bir intikamla) yönetmek zorunda değil. İşler bittiğinde, kısıtlı bir ortam denilen sisteme yeniden başlayıp sisteminize girebilirsiniz.

Bir komut satırı alırsınız ve küçük ve genellikle statik olarak bağlantılı olan yararlı komutlar olarak adlandırılan küçük bir gruba erişirsiniz. Bir editör olarak vi'yi, hatta daha küçük olanını edinebilirsiniz, ancak emacs veya vim'i alamazsınız. Kedi alırsın, ama daha az değil. Fikir, bu kaynaklar yanlış yapılandırılmış ya da tamamen kullanılmış olabileceği için çok fazla kaynak almadan sisteminizi onarmak için yeterli araçları sağlamaktır. Bu şartlar altında daha az komut gereksizdir.


2

Ve lesstüm GNU / Linux dağıtımlarına önceden yüklenmemiş. (örn. Gentoo) catmuhtemelen her yerde.


2

Ekranda catkalır. Her şey lesskayboluyor.

Volker Siegel / tarafından açıklığa kavuşturulmuş:

Ekranda kalan çıktılar cat. lessKapandıktan sonra her şey hayal kırıklığına uğrar.


1

Ayrıcalık yükselmesiyle ilgili bir sorun olabilir, 'daha az' içinde 'bir dosyayı düzenlemek için' v 'ya da'! ' Bir kabuk komutu göndermek için

Bazı kullanıcıların yalnızca süper kullanıcı tarafından okunabilecek bir dosyayı görüntülemesine, ancak bu kullanıcıların dosyayı düzenlemesine veya genel olarak süper kullanıcı ayrıcalıklarını kullanmalarına izin vermeyebilirsiniz. Bunu, '/ etc / sudoers' ifadesini 'sudo / bin / cat / etc / importantfile' kullanmalarına izin vermek için düzenleyerek yapabilirsiniz. 'Sudo / usr / bin / less / etc / importantfile' dosyasına izin vermek istemezsiniz, çünkü dosyayı düzenlemek için 'v' ya da '!' Süper kullanıcı ayrıcalıklarına sahip bir kabuk başlatmak için.

Tabii ki, kullanıcılar 'sudo / bin / cat / etc / importantfile | az 've güvenlik riskleri olmadan hala' az 'kullanın.


1

İkisi farklı. lessstandart olmayan bir çağrı cihazıdır ( morestandart olan), metni görüntülemek için kullanılırken catstandart bir yardımcı programdır, herhangi bir tür ve veri akışını bir araya getirmek için kullanılır.

Bazı durumlarda aynı şeyi yapıyor gibi görünebilirler, ama sonra yine diğer kamu hizmetleri de öyle.


0

Kolaylık sağlamak için. kedi daha fazla / az 4 karakter varken 3 karaktere sahiptir. Ve yazarak kedi sadece senin sol elini gerektirir.


1
Neden sadece sol elinizi kullanmak bir avantajdır? Fareyi terminalde kullanmıyorum ...
Bernhard

0

Ekranda karakterleri göstermek için nasıl açısından, lessne yapabilirim catyapabilirsiniz; Ve daha fazlası.

: Ancak bazı durumlarda kedi kullanmak için çok iyi bir neden yoktur
lessadildir çok karmaşık , çok basit problemleri onu atmak. Öyle çok seçeneğim var ki cat, man sayfadaki ilgilileri bulmak zor .


Bir sekmeleri göstermek ister misiniz Makefile?

İçinde man catilk seçenek -A.
Açıklama yararlı değildir: -vET.
Ama uzun seçenek ismi sadece doğru sesler: --show-all.

Ve cat -A Makefileihtiyacım olanı yapıyor.


Şimdi git ve onu bul less.


0

Çıktı bir terminal (tty) değilse, her ikisi de 'daha az' ve 'daha fazlası' tam olarak 'cat' gibi çalışacaktır, borular ve dosyalar için her ikisi de sayfa numaralandırmaya dönmeyeceklerdir.

Bence 'kedi' nin bulacağınız herhangi bir Unix tipi sistemde her zaman bulunduğunu söylemek güvenlidir. Herhangi bir sistemde 'daha az' ve / veya 'daha fazla' varlığı daha az tahmin edilebilir.

Bu nedenle komut dosyalarında, yalnızca sayfalama işlemi yapılmayan bir işleme ihtiyacınız varsa, 'cat' komut dosyasının Unix tipi bir sistemde kullanıldığı her yerde bulunduğundan emin olun.


1
Peki, moreTek Unix Şartnamesi'nde belirtildiği gibi görülebildiğini varsaymak güvenlidir .
Kusalananda

Ne yazık ki, bu şekilde zorunlu olabilirken, ama benim deneyimime göre her zaman mevcut değildir. Unix olduğunu iddia etmeyen çok sayıda Unix benzeri sistem bulunduğunu belirtmekte fayda var. Birinin bir lessveya birisinin olacağından emin olabileceğini moredüşünüyorum, ancak birinin belirli bir uygulamaya güvenemeyeceğini, ne de 'gerçek' bir uygulama olduğuna inanıyoruz ... çoğu biri diğerine takma, bazen de onlar ' yeniden minimal hafif bir versiyonun.
user208007

-1

Grep ile kedi borulama faydalıdır:

cat <filename> | grep -i "string of interest"

4
Değil belirtmeyi grepbir argüman olarak bir dosya adı alır veya yönlendirmeyi kullanabilirsiniz. Boru pahalıdır.
Chris Down

25
Tebrikler, 'işe yaramaz kedi kullanımı' ödülü kazandınız!
ThatGraemeGuy

4
@TimKennedy - "varken less" soru başlığında ...
Chris Down

5
Upvoted. Bunu düzenli olarak yapıyorum. Bir dosyayı farklı arama terimleri için çok kez grep etmek istersem, bu daha kolaydır. grep wants grep [search term] [filename]Bu nedenle, terminal geçmişini kullanıyorsam, arama terimini düzenlemek daha fazla acı verici. Grep'e yönlendirme yaparak arama terimi satırdaki son şeydir ve düzenlemesi daha kolaydır.
Sahte Adı

10
İstediğiniz siparişi hala kullanmadan alabilirsiniz cat: < [filename] grep [search term]and < filename tail -n 1000 | grep pattern. Yeniden yönlendirme komut satırında hemen hemen her yere gidebilir.
camh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.