当你有“less”时,还有理由使用“cat”吗?

当你有“less”时,还有理由使用“cat”吗?

我以前用它cat来查看文件。然后我了解到这less通常更好,并且如果文件长于几十行,则这是必须的。

我的问题:是否有理由使用cat而不是less?有没有cat更好的解决方案?

答案1

尽管这两个命令都允许您查看文件的内容,但它们的最初目的却截然不同。

较少扩展的能力更多的。创建后者是为了一次一屏地查看文件的内容。 less 添加了向后移动和更好的内存管理等功能(无需在看到第一行之前读取整个文件)。

cat 连接文件并将结果打印在标准输出上。如果您仅提供一个文件,您将看到该文件的内容。当您提供多个文件时,它会变得“强大”。一个很好的例子是组合分裂和猫。第一个命令将把大文件分成小部分。然后,第二个文件会将这些小部分连接成一个文件。

回到您的问题,在需要完全读取(或连接)文件而无需交互的自治脚本中, cat 是首选。就文件查看而言,我认为这更多是一个品味问题。

答案2

我个人更喜欢view静态内容或tail -f动态内容。

但这并不能回答你的问题。有句话说“如果你拥有的少,为什么要使用更多”;-)

但有些情况下我更喜欢 cat 而不是 less:我通常使用 X11-windows。这些窗口有一个滚动缓冲区,可以设置为数百行。

对我来说,执行catfor - 假设 200 行,然后使用带有滚动条的鼠标比less在这些情况下使用更舒服。

答案3

cat我通常在需要根据文件中的某些内容键入命令时使用。cat更方便,因为您可以在访问 shell 提示符时看到文件(如果它很小)。它还允许管道内衬。

答案4

有些人激烈地争论说,这样做的唯一目的cat是为了欺骗生成文件。对于所有其他用途,都有more(或less)。

但这没有考虑到一个非常重要的事实:cat少输入一个字符。我经常使用这些命令,因此少一个字符是理所当然的。

另一个原因是当您想要创建文件时。我经常将网络上的文本复制并粘贴到如下文件中(显示命令提示符):

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

也就是说,我打开一个文件filename进行写入访问,粘贴内容并按Ctrl-关闭流D。两者都less不能more做到这一点,而且它比打开编辑器更快。

相关内容