“猫”是干什么用的?

cos*_*p12 17 command-line cat

我已经看到 cat 命令出现在一些在线的东西中,我很好奇cat在一个只是做一些简单的命令行东西的人的上下文中做了什么以及它的用途。

mur*_*uru 13

cat的主要目的是骗子enate文件。cat file1 file2 ...将显示的内容filefile2和其他人一前一后,好像含量在一个文件中。请参阅联机帮助页

NAME
       cat - concatenate and print files
Run Code Online (Sandbox Code Playgroud)

它适用于以下任何一种情况:

  • 目标命令无法从文件中读取,您需要将多个文件传递给它。一个例子是tr实用程序。通常,使用一个文件,您会执行以下操作:

    tr < file
    
    Run Code Online (Sandbox Code Playgroud)

    但是对于多个文件,不能使用重定向,所以你必须这样做:

    cat file1 file2 ... | tr
    
    Run Code Online (Sandbox Code Playgroud)
  • 一个目标命令可以从多个文件中读取,但是当它被赋予多个文件时,它的行为可能会改变。一个示例是wc,它打印每个文件的计数以及文件名,您可能只需要总数,而没有文件名。

请记住,您遇到的大多数命令 ( grep, sed, awk, sort, ...) 都可以完美读取文件。

如果你想查看一个文件的内容,使用寻呼机-less并且more都突出地能够呈现文件进行查看,并且是更加方便使用。


May*_*hux 11

cat是类 Unix 操作系统上最常用的命令之一。它具有与文本文件相关的三个功能:

  1. 展示它们
  2. 组合它们的副本
  3. 创造新的。
  4. 复制文件

cat 的一般语法是:

cat [options] [filenames] [-] [filenames]
Run Code Online (Sandbox Code Playgroud)

读取文件

cat 最常见的用途是读取文件的内容,而 cat 通常是用于此目的的最方便的程序。打开文本文件以在显示监视器上查看所需的全部内容是键入单词 cat,后跟一个空格和文件名,然后按 ENTER 键。例如,以下将显示名为 file1 的文件的内容:

cat file1
Run Code Online (Sandbox Code Playgroud)

级联

cat 的第二个作用是串联。(这就是cat奇怪名字的来源。)对原始文件没有影响。

例如,以下命令将连接三个文件 file1、file2 和 file3 的内容副本:

cat file1 file2 file3
Run Code Online (Sandbox Code Playgroud)

每个文件的内容将显示在监视器屏幕上。使用输出重定向运算符可以轻松地将此输出重定向到另一个文件,例如 file4,使用以下命令:

cat file1 file2 file3 > file4
Run Code Online (Sandbox Code Playgroud)

文件创建

感谢@muru评论:cat 能够根据 shell 重定向功能创建新文件,而不是它本身

对于小文件,这通常比使用 vi、gedit 或其他文本编辑器更容易。它是通过键入 cat 后跟输出重定向运算符和要创建的文件的名称来完成的,然后按下ENTER并最后同时按下Ctrl&d键。

例如,可以通过键入来创建一个名为 file1 的新文件

cat > file1
Run Code Online (Sandbox Code Playgroud)

然后按ENTER和 同时按Ctrl&d键。

PS1:如果一个名为file1的文件已经存在,它将被覆盖

PS2:您可以使用附加运算符>>示例 cat >> file1附加到退出的文件

复制文件

也可以使用 cat 命令(取决于shell 重定向功能)来创建一个新文件并将现有文件中的数据传输给它。示例:制作文件的副本oldfile.txt

cat oldfile.txt > newfile.txt
Run Code Online (Sandbox Code Playgroud)

参考: