ファイルを表示するためにcatを使用するのはなぜですか? [閉鎖]

ファイルを表示するためにcatを使用するのはなぜですか? [閉鎖]

cat複数のファイルをリンクすることが目的のようです。しかし、多くの人はまだファイルを表示するためにcat置換less(または同様のプログラムmore)を使用しています。例えばGNU m4 マニュアルそして答えは「コマンドラインにテキストファイルの内容を表示する方法は?」。

マニュアルページ:以下

-F または --quit-if-one-screen

lessファイル全体が最初の画面に表示されると、自動的に終了します。

-X または --no-init

    termcap初期化と初期化解除文字列を端末に送信することを無効にします。初期化解除文字列が不要な操作(画面の消去など)を実行している場合は、これが時々望ましいことがあります。

最近では、ファイルを表示または表示するためにそれを使用するのが良い習慣ですかcat?ファイルビューを使用するのはなぜですかcat

これは思います。猫に役に立たない用途

メモ:lessこの質問はとの違いに関するものではありませんmore。また、以前に作成されたファイルの可視化も含まれます。


回答と意見に基づいてcat、ポケットベルよりも使いやすいので、目的を超えているようです(例えば、more... less)。一部の人々はこれを些細な事実(または役に立たない事実)と考えていますが、経験によると、シェルに関連するさまざまな微妙さが実際の結果をもたらす可能性があります。シェルループを使用した処理テキスト 文書引用符なしで変数を使用する...

否定的な結果は強度によって異なります。たとえば、cat foo bar | lessこれはユーザーが2つのファイルをリンクしたために機能しますが、cat foo | less 無効。同じ精神では、ポケットベルはパイプでも動作しているcatように見えますが、「パイプ」で必要になるようです(注:ディスプレイに関連するすべての場合に適しているわけではありません)。lessless名前付きパイプを読む:tailまたはcat?)。

また見なさい: ORオプションを使用してファイルを分類する方法

答え1

私は質問に出てくる「多くの人」がこのようなサイトにチュートリアル、マニュアル、または答えを書く人を意味すると仮定します。

テキスト文書にターミナルコマンドを作成するときに、ファイルのcat内容を表示するためにこのコマンドが頻繁に使用されます。

一例:

$ cat script.sh
#!/bin/sh
echo 'hello'
$ chmod +x script.sh
$ ./script.sh
hello

ここではというファイルがありscript.sh、その内容が何なのか、ファイルを実行可能にしているのか、実行中なのか、その結果は何なのかを示します。

この例では、使用はcat「すべてのカードを表示」する方法に過ぎません。つまり、例のすべての前提条件を明示的に表示します(そしてそれをターミナルセッションのテキスト表現の一部にします)。

less他の画面ベースのページャは、使用方法によっては端末がこの出力を必ずしも提供しない可能性があります。だから私が書くなら

$ less script.sh
#!/bin/sh
echo 'hello'

ユーザーが自分で試してみると、スクリプトのテキストがターミナルで異なるように見え、ポケットベルを閉じた後にターミナルから消えるless(ポケットベルを設定した場合)または回答(またはチュートリアル)lessと混同するのか疑問に思うかもしれません。lessまたはコンテンツに使用されているすべてのもの)または他のことを間違っている場合。この考え方の可能性を許可することは、ユーザーに悪影響を及ぼし、破壊的です。

catこれは例を再現するための非常に簡単な方法を提供するので、端末で例をテキストとして表示するときに使用することをお勧めします。精密与えられたテキストと同じ結果です。大きなファイルの場合は、ファイルを個別に表示し、ファイルに何が起こっているのかを理解することに集中することをお勧めします。使用されるテキストにターミナルコマンドを書き込むとき。

less、、、、、またはmore他のポケットベルやプログラムを使用してファイルを表示することを好む場合は、mostまったく問題はありません。続けてください。ただし、端末の一部のワークフローを説明する再現可能なテキストを提供するには、端末から読み取った内容と端末で表示する内容の違いについて、ユーザーに警告を提供する必要があります。使用されるポケットベルおよび構成方法。viewsublime

答え2

less非標準のGNUユーティリティです。

catPOSIXです:

     The Open Group Base Specifications Issue 7, 2018 edition
      IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008)
           Copyright © 2001-2018 IEEE and The Open Group

名前

cat - ファイルの関連付けと印刷

要約

cat [-u] [file...]

...

cat存在する可能性が高い一貫した行動を維持し、

答え3

catを使用してファイルを表示または表示するのは良い習慣ですか?

IMO、これは良くも悪くもありません。

「良い習慣」は、個人としてあなたをより効果的にするすべての慣行であり、より重要なことに、あなたをチームのより効果的なメンバーにするすべての慣行です。

短いテキストファイルを表示するために使用するツールの好みは、仕事や同僚との関係には影響しません。

答え4

IMHO、私の考えはこれが「古い/悪い」習慣だと思います。自分は少ない方が良いとは思わないので、いつも猫を使います。バイナリファイルの内容を表示しようとすると、lessは表示に同意するかどうかを尋ね、テキストが長い場合は自動的にページを付けます。 Catは、書くのが短く、ページ付けが不要な非常に短いファイルで使いやすいです。それでも実際には二人用を意味します。この場合、テキストを表示するために、パラメータ1で指定されたファイルの標準出力とパラメータ2のデフォルトの標準入力を関連付けます。

関連情報