为什么要使用 cat 查看文件?

2 less text-processing cat

似乎目的cat是连接几个文件。但是,许多人仍然使用cat代替less(或类似的程序more)来显示文件。例如,请参阅GNU m4 手册和答案“如何在命令行上显示文本文件的内容? ”。

手册页:少

-F 或 --quit-if-one-screen

less如果整个文件可以显示在第一个屏幕上,则    导致自动退出。

-X 或 --no-init

    禁止将 termcap 初始化和取消初始化字符串发送到终端。如果取消初始化字符串做了一些不必要的事情,比如清除屏幕,这有时是可取的。

如今,cat用于显示或查看文件是一个好习惯吗?为什么使用cat查看文件?

这让我想到了Useless Use Of Cat

注意:这个问题是不是之间的差异lessmore。此外,它涉及先前创建的文件的可视化。


根据答案和评论,它似乎cat超出了它的用途,因为它比寻呼机更容易使用(例如moreless...)。有些人认为这是一个无关紧要的事实(或无用),但经验表明,与 shell 有关的各种微妙之处可能会产生实际后果:使用 shell 循环处理文本 文件使用不带引号的变量......

负面后果的强度各不相同。例如,cat foo bar | less有效因为用户连接了两个文件但cat foo | less 无效。本着同样的精神,cat似乎在“管道”中是必需的,尽管似乎寻呼机也less可以在管道中工作(注意:less并不适合所有有关显示的情况,例如读取命名管道:tail 或 cat?)。

另请参阅: 如何使用“或”选项对文件进行分类

Kus*_*nda 7

我将假设问题中的“许多人”是指在诸如本网站之类的网站上编写教程、手册或答案的人。

在文本文档中编写终端命令时,该cat命令通常用于显示文件的内容。

这方面的一个例子:

$ cat script.sh
#!/bin/sh
echo 'hello'
Run Code Online (Sandbox Code Playgroud)
$ chmod +x script.sh
Run Code Online (Sandbox Code Playgroud)
$ ./script.sh
hello
Run Code Online (Sandbox Code Playgroud)

在这里,我展示了我有一个名为 的文件script.sh,它的内容是什么,我让它可执行,我正在运行它,以及它的结果是什么。

使用cat这个例子只是“显示所有一个人的卡”,即明确显示所有先决条件的例子(和做它作为一个终端会话的文本表示的一部分)的方式。

less和其他基于屏幕的寻呼机,取决于它们的使用方式,不一定会在终端中提供该输出。所以如果我写

$ less script.sh
#!/bin/sh
echo 'hello'
Run Code Online (Sandbox Code Playgroud)

并且用户自己尝试了它,他们可能想知道为什么脚本的文本在他们的终端中显示不同,然后在关闭less寻呼机后从终端中消失(如果这是他们配置寻呼机的方式),或者他们是否less是从不同less的答案中使用(或教程或任何可能),或者如果他们在做别的事情是错误的。允许这种思路的可能性对用户来说是适得其反和具有破坏性的。

利用cat显示在终端文本为例,当是好事,因为它给了再现的一个相当简单的方法精确相同的结果,在给定的文本。对于较大的文件,它可以是更好地展示分开的文件,然后集中在如何该文件用于写入终端命令作为文本时。

如果您更喜欢使用lessmoremostviewsublime或其他一些寻呼机或程序来查看文件,那完全没问题。继续这样做。但是,如果您想提供描述终端中某些工作流程的可重现文本,您还必须警告用户,根据使用的寻呼机,他们阅读的内容和他们在自己的终端中看到的内容可能有所不同以及它是如何配置的。


And*_*nle 6

less 是一个非标准的 GNU 实用程序。

cat是 POSIX

     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
Run Code Online (Sandbox Code Playgroud)

姓名

cat - 连接并打印文件

概要

cat [-u] [file...]
Run Code Online (Sandbox Code Playgroud)

...

cat更有可能存在并具有一致的行为

  • 当事实证明 [`more` 也是如此](http://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/more.html) 时,这个论点就会失败。(-: (3认同)
  • @JdeBP 是的,但这个问题非常具体地指的是“更少”,将“更多”降级为脚注 - 从字面上看。我也很确定脚注不在原始帖子中(前几分钟所做的编辑不显示)。 (2认同)