/usr/bin/cat [-nbsuvet] [ file...]
cat 实用程序可以读取序列中的每个 file,并将其写入标准输出。因此:
example% cat file
在您的终端显示 file,并且:
example% cat file1 file2 >file3
串联 file1 和 file2,然后将结果写入 file3。如果未指定输入文件,cat 将从标准输入文件中读取输入。
/usr/bin/cat 支持以下选项:
为各个行进行编号(例如 –n),但是忽略空白行的行编号。
输出每个行时在前面加上其行编号。
cat 对于不存在的文件不提供任何提示。
输出不会缓冲。
缺省情况下缓冲输出。
不可显示字符(制表符、换行符和换页符除外)以可见的方式显示。ASCII 控制字符(八进制 000 − 037)显示为 ^ n,其中 n 是八进制 100 − 137 范围中对应的 ASCII 字符(@、A、B、C、.. .、X、Y、Z、[、\、]、^ 和 _);而 DEL 字符(八进制 0177)显示为 ^?。其他不可显示的字符均显示为 M-x,其中 x 是低阶七位指定的 ASCII 字符。
当配合 –v 选项使用时,可以使用以下选项:
$ 字符显示在每行的末尾,换行符之前。
制表符显示为 ^I,而换页符显示为 ^L。
如果未指定 –v 选项,则忽略 –e 和 –t 选项。
支持下列操作数:
输入文件的路径名称。如果未指定 file,则使用标准输入。如果 file 为 − ,则 cat 从序列中的该点读取标准输入。当以这种方法引用时,cat 不关闭和重新打开标准输入,但是接受多次出现的 − 作为 file。
有关 cat 遇到大于或等于 2 GB(231 字节)文件时行为的说明,请参见 largefile(5)。
下面的命令将 myfile 文件的内容写入标准输出:
example% cat myfile示例 2 将两个文件串联成一个文件
下面的命令串联 doc1 文件和 doc2 文件,并将结果写入 doc.all。
example% cat doc1 doc2 > doc.all示例 3 通过单次调用串联输入的两个任意片段
当标准输入为终端时,下面的命令通过单次调用 cat 从终端获取输入的两个任意片段:
example% cat start - middle - end > file
当标准输入为终端时,通过单次调用 cat 从终端获取输入的两个任意片段。
如果标准输入为常规文件,
example% cat start - middle - end > file
则等效于下面的命令:
cat start - middle /dev/null end > file
由于第一次将 − 用作 file 操作数时 cat 会使用文件的全部内容,因此在第二次引用 − 时可以立即检测到文件末尾条件。
有关影响 cat 执行的以下环境变量的描述,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。
将返回以下退出值:
所有输入文件都已成功输出。
出现错误。
有关下列属性的说明,请参见 attributes(5):
|
touch(1)、attributes(5)、environ(5)、largefile(5)、standards(5)
将 cat 的输出重定向到正在读取的文件之一会导致正在读取文件原来的数据丢失。例如,
example% cat filename1 filename2 > filename1
导致 filename1 中原来的数据丢失。