「少なく」なったときに「猫」を使用する理由はありますか?


59

以前はcatファイルの表示に使用していました。それから、私はそれlessが通常はより良いことを学びました、そして、ファイルが数十行より長いなら、それは必須です。

私の質問:cat代わりに使用する理由はありlessますか?catより良い解決策がある状況はありますか?


17
lesscatさまざまな問題を解決し、それぞれが独自の問題領域で他よりも優れている
David Heffernan

2
後でcat出力にパイプするためにのみ使用しlessます。
-FUZxxl

1
私は頻繁に使用するcatファイルで、コンソールに非常に短いファイルを印刷する/procと、/sys非常に良好な候補です。これにより、複数のファイルのコンテンツを同時に表示できます。
Feuermurmel 14

回答:


20

個人的にはview、静的コンテンツまたはtail -f動的コンテンツを好みます。

ただし、これはあなたの質問には答えません。「あなたが少ないならもっと使う」ということわざがあります;-)

しかし、私は猫よりも猫を好まない場合があります:私は通常X11-windowsで作業します。これらのウィンドウには、数百行に設定できるスクロールバッファがあります。

catforを行う-たとえば、200行で、スクロールバーでマウスを使用するとless、これらの場合に使用するよりも快適になります。


4
viewあなたはいつものことを意味しvim -Rますか、その名前の何かがありますか?
マナトワーク

いいえ-読み取り専用モードではvi(またはvim)のみ。CentOSはデフォルトでそのエイリアスを設定します。これは、保護されたディレクトリ内のファイルを表示するときにHIDSをトリガーしません。
ニルス

2
less +F何をtail -fします。
legends2k 14

2
実際にviewは、エイリアスではありません。それはリンクです(viまたはへvim)。 vi見てargv[0]、それは(それが下に呼び出されたものを名前を参照すること)を開始したときに、それがある場合viewrview、それは(あなたが入力したかのように読み取り専用モードを設定しますvim -R)。
G-Manが「Reinstate Monica」と言う

91

どちらのコマンドでもファイルのコンテンツを表示できますが、本来の目的はまったく異なります。

lessはmoreの機能を拡張します。後者は、ファイルの内容を一度に1画面分表示するために作成されました。lessは後方への移動やメモリ管理の改善などの機能を追加します(最初の行を見る前にファイル全体を読む必要はありません)。

catはファイルを連結し、結果を標準出力に出力します。ファイルを1つだけ指定すると、そのファイルのコンテンツが表示されます。複数のファイルを提供すると「強力」になります。良い例は、splitとcatの組み合わせです。最初のコマンドは、大きなファイルを小さな部分に分割します。2番目のものは、小さな部分を1つのファイルに連結します。

質問に戻ると、対話なしでファイルを完全に読み取る(または連結する)必要がある自律型スクリプトでは、catが優先されます。ファイル表示に関しては、好みの問題だと思います。


4
less常にファイル内の検索を許可しますが、許可しcatません。
ベルンハルト

@Bernhard:cat出力でgrepを実行するのはどうですか?
user3527975

23

私は通常cat、ファイル内の何かに基づいてコマンドを入力する必要があるときに使用します。catシェルプロンプトにアクセスしている間にファイル(小さい場合)を表示できるため、より便利です。パイプライニングも可能です。


3
1つのファイルについては、標準入力のリダイレクトも可能であり、多くの場合は望ましい方法です。
AProgrammer

17
猫がより良い解決策である状況はありますか?

複数のファイルを処理し、それらを連結する場合。

manページから:

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

15

唯一の目的があること激しく主張する人がいるcatコンしている猫の enateファイルが。他のすべての用途には、more(またはless)があります。

しかし、これは1つの非常に重要な事実を考慮に入れていませんcat。入力する文字が1つ少ないことです。私はこれらのコマンドを頻繁に使用するため、1文字少なくても簡単です。

もう1つの理由は、ファイルを作成するときです。私はしばしば、テキストをWebからこのようなファイルにコピーアンドペーストします(コマンドプロンプトを表示)。

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

つまりfilename、書き込みアクセス用のファイルを開き、コンテンツを貼り付けて、Ctrl- を押してストリームを閉じますD。それlessmoreできず、エディターを開くよりも高速です。


4
zshをシェルとして使用する場合、stdinが接続された状態で$<filename$プロンプトがどこにあるか)$ PAGERを起動するように設定できますfilename。これは、入力する文字がの場合よりもさらに少ないですcat
ケビンキャスカート

@Kevin知って嬉しいですが、私はbashユーザーです。
コンラッドルドルフ

2
Mac OS Xでは、を使用しますがpbpaste > filename、Xには似たようなものがあると思います。私はまだcat貼り付けだけでなく、迅速なファイル作成に使用しています。
-cobbal

@cobbal Hehe、他の目的でpbcopy/ を使用しているにもかかわらず、そのことを考えたことはありませんpbpaste
コンラッドルドルフ

1
これは、2つの文字より少なく、実際のです-あなたは押す必要がq終了するにはless:D
マーティン・フォン・Wittich


4

(複数の)ファイルに使用catgrepます。

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

grepはファイル名をサポートしていることを知っていますが、異なる検索用語に対して同じファイルをgrepしている場合、検索用語が行の最後のものであるコマンドを編集する方が、ctrl +矢印キーで行を戻す必要があります。



3

私は使用less -FXせた、lessのように振る舞うcatのファイルを1つの画面上に表示することができたとき。less(1)マンページから:

-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

おそらく、現在のUnixの亜種はポピュラーであるため、多くの人がシステムを管理する必要はありません(思い切って)。状況が悪化した場合、制限付き環境と呼ばれる環境でシステムをリブートしてシステムに入ることができます。

コマンドラインを取得し、小さくて通常は静的にリンクされている有用と思われるコマンドの小さなセットにアクセスします。viをエディターとして、または小さなedとしても入手できますが、emacsやvimは入手できません。あなたは猫を得るだろうが、それ以下ではない。アイデアは、リソースが不適切に構成されているか、すべて使い果たされている可能性があるため、リソースを使いすぎずにシステムを修復するのに十分なツールを提供することです。これらの状況下でのコマンドの少なさは不要です。


2

またless、すべてのGNU / Linuxディストリビューションにプリインストールされているわけではありません。(たとえば、Gentoo)catはどこにでもあるでしょう。


2

cat画面上に留まります。すべてがless消えます。

Volker Siegelによって/のために明確化:

の出力はcat画面に残ります。less閉じた後に表示されるものはすべて消えます。


1

「less」内では「v」を押してファイルを編集したり、「!」シェルコマンドを送信します。

一部のユーザーには、スーパーユーザーのみが読み取れるファイルを表示できるようにしたいが、それらのユーザーにファイルの編集や一般的なスーパーユーザー権限の使用を許可したくない場合があります。これを行うには、「/ etc / sudoers」を編集して「sudo / bin / cat / etc / importantfile」を使用できるようにします。「v」を使用してファイルを編集したり、「!」を使用したりできるため、「sudo / usr / bin / less / etc / importantfile」を許可したくありません。完全なスーパーユーザー権限でシェルを起動します。

もちろん、ユーザーは「sudo / bin / cat / etc / importantfile | セキュリティリスクなしで、「少ない」を使用し、「少ない」を使用します。


1

2つは異なります。lessは標準以外のページャー(標準のページャーmore)であり、テキストの表示に使用されますcatが、標準のユーティリティであり、任意のタイプおよび数のデータストリームを1つに連結するために使用されます。

状況によっては同じことをしているように見えるかもしれませんが、他のユーティリティも同様です。


0

便宜上。猫は3文字で、多かれ少なかれ4文字です。そして、タイピング猫はあなたの左手だけを必要とします。


1
左手だけを使用することが有利なのはなぜですか?私は端末でマウスを使用しません
Bernhard

0

画面にキャラクターを表示する方法に関しては、lessできることを行うことcatができます。そして、はるかに。

しかし、場合によって
lessはcatを使用する非常に良い理由があります。非常に単純な問題に当てはめるには複雑すぎるだけです。私は非常に多くのオプションを持っているのでcat、manページで関連するものを見つけるのは難しいです。


タブを表示したいMakefileですか?

ではman cat、最初のオプションは-Aです。
説明は役に立ちません:-vET
しかし、長いオプション名はちょうどいいように聞こえます:--show-all

そしてcat -A Makefile、私が必要なことをします。


さあ、それを見つけに行きましょうless


0

出力が端末(tty)でない場合、「less」と「more」はどちらも「cat」とまったく同じように機能します。パイプとファイルについては、どちらもページネーションなしに戻ります。

「cat」は、これまでに見つかったどのUnixタイプのシステムにも常に存在すると言っても安全だと思います。どのシステムにも「少ない」および/または「多い」の存在は予測しにくい

したがって、スクリプトでは、ページネーション以外の操作のみが必要な場合は、Unixタイプのシステムでスクリプトが使用される場所に「cat」が必ず存在します。


1
まあ、moreSingle Unix Specificationで義務付けられているように、それが利用可能になると仮定するのは安全です。
クサラナンダ

悲しいことに、そのように義務付けられているかもしれませんが、私の経験では常に存在するとは限りません。Unixであると主張していないUnixライクなシステムが数多く存在することは注目に値します。a lessまたはaのいずれかmoreが存在することはかなり自信があると思いますが、特定のものを信頼することも、それが「真の」実装であるとは思いません...最小限の軽量バージョンを再。
user208007

-1

grepを介して猫を配管すると便利です。

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

4
言うまでもなくgrep、引数としてファイル名を取るか、リダイレクトを使用できます。パイプは高価です。
クリスダウン

25
おめでとうございます、あなたは「猫の無駄な使用」賞を獲得しました!
ThatGraemeGuy

4
@TimKennedy - 「あなたが持っているless」質問のタイトルである...
クリス・ダウン

5
賛成。私は定期的にこれを行います。異なる検索語に対してファイルを複数回grepしたい場合、これは簡単です。grepが望んでいるgrep [search term] [filename]ので、それは私が、端末の履歴を使用していた場合、検索用語を編集する痛みのより多くのです。grepにパイピングすることで、検索語は最後の行になり、編集しやすくなります。
偽の名前

10
あなたはまだ使用せずに、あなたが望む順序を持つことができますcat< [filename] grep [search term]< filename tail -n 1000 | grep pattern。リダイレクトは、コマンドラインのどこにでも行けます。
-camh
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.