我曾在一些在线资料中看到过 cat 命令,并且我很好奇对于cat
那些只进行一些简单的命令行操作的人来说,它起什么作用以及有什么用途。
答案1
cat
的主要目的是猫列出文件。将依次显示 的内容和其他内容,就像内容位于单个文件中一样。请cat file1 file2 ...
参阅file
file2
手册页:
NAME
cat - concatenate and print files
它适用于以下情况:
目标命令无法读取文件,您需要向其传递多个文件。例如
tr
实用程序。通常,对于一个文件,您可以执行以下操作:tr < file
但是对于多个文件,不能使用重定向,因此您必须执行以下操作:
cat file1 file2 ... | tr
- 目标命令能从多个文件中读取,但当它被赋予多个文件时,其行为可能会改变。例如
wc
,它将打印每个文件的计数以及文件名,而您可能只想要总数,而不想要文件名。
请记住,您遇到的大多数命令(grep
,,,,...)都可以完美地读取文件。sed
awk
sort
答案2
cat
是类Unix操作系统中最常用的命令之一。它有三个与文本文件相关的功能:
- 展示它们
- 合并它们的副本
- 创造新的。
- 复制文件
cat 的一般语法是:
cat [options] [filenames] [-] [filenames]
读取文件
cat 最常见的用途是读取文件内容,cat 通常是用于此目的最方便的程序。要打开文本文件并在显示器上查看,只需键入单词 cat,后跟空格和文件名称,然后按 ENTER 键。例如,以下将显示名为 file1 的文件的内容:
cat file1
级联
cat 的第二个作用是连接。(这就是 cat 这个奇怪名字的来源。)对原始文件没有影响。
例如,以下命令将连接三个文件 file1、file2 和 file3 的内容副本:
cat file1 file2 file3
每个文件的内容将显示在监视器屏幕上。可以使用输出重定向运算符轻松地将此输出重定向到另一个文件(例如 file4),如下所示:
cat file1 file2 file3 > file4
文件创建
谢谢@muru评论 :cat 能够根据 shell 重定向功能创建新文件,而不是其自身
对于小文件,这通常比使用 vi、gedit 或其他文本编辑器更容易。只需输入 cat,然后输入输出重定向运算符和要创建的文件的名称,然后按ENTER并最后同时按Ctrl&d键即可。
例如,可以通过键入以下内容创建名为 file1 的新文件
cat > file1
然后按下ENTER并同时按下Ctrl&d键。
PS1: 如果名为file1的文件已经存在,则会被覆盖
PS2:你可以使用附加运算符附加到退出的文件,>>
例如 cat >> file1
复制文件
cat 命令也可以使用(取决于基于 shell 重定向功能)创建一个新文件并将现有文件中的数据传送给它。示例:复制文件oldfile.txt
:
cat oldfile.txt > newfile.txt
参考:
答案3
它可用于显示文件的内容。例如:cat "my file.txt"
。您还可以man cat
显示有关cat
用途的详细信息。
答案4
这是其他方式使用 shell 重定向(或管道)创建文件cat
:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOF
将输出以下行,直到EOF
再次遇到该字符串。然后>
( >>
) 将把输出重定向到文件foo.sh
。或者,如果您需要以 root 身份创建文件,则可以将输出通过管道传输到命令tee
( tee -a
),由命令 执行sudo
:
cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
chmod +x
如果成功创建文件( ),则上述操作将使文件可执行( )&&
。- 在 的输出中,某些字符(如 )的特殊含义
$
应该用 进行转义。\
cat