我已经看到cat命令出现在一些在线内容中,我很好奇cat
在有人只是在做一些简单的命令行内容的情况下它做了什么以及它的用途。
我已经看到cat命令出现在一些在线内容中,我很好奇cat
在有人只是在做一些简单的命令行内容的情况下它做了什么以及它的用途。
Answers:
cat
的主要目的是骗子猫 enate文件。cat file1 file2 ...
会显示的内容file
,file2
然后依次显示其他内容,就像这些内容在一个文件中一样。参见手册页:
NAME
cat - concatenate and print files
它用于以下情况之一:
目标命令无法从文件读取,您需要将多个文件传递给它。该tr
实用程序就是一个例子。通常,使用一个文件,您可以执行以下操作:
tr < file
但是对于多个文件,无法使用重定向,因此您必须执行以下操作:
cat file1 file2 ... | tr
wc
,它显示每个文件的计数以及文件名,而您可能只希望总数而不包含文件名。记住,你遇到的大多数命令(grep
,sed
,awk
,sort
,...),可以完全正常的读取文件。
cat
是类Unix操作系统上最常用的命令之一。它具有与文本文件有关的三个相关功能:
cat的一般语法为:
cat [options] [filenames] [-] [filenames]
cat的最常见用法是读取文件的内容,而cat常常是用于此目的的最方便的程序。打开文本文件以在显示监视器上查看所需的所有操作是,键入单词cat,后跟一个空格和文件名,然后按Enter键。例如,以下将显示名为file1的文件的内容:
cat file1
猫的第二个作用是串联。(这是cat好奇名称的来源。)对原始文件没有影响。
例如,以下命令将连接三个文件file1,file2和file3的内容的副本:
cat file1 file2 file3
每个文件的内容将显示在监视器屏幕上。使用输出重定向操作符可以很容易地使用以下命令将输出重定向到另一个文件,例如file4:
cat file1 file2 file3 > file4
感谢@muru comment: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
参考文献:
cat
没有创建这些文件-使用重定向时使用的是shell。您可能做得还不错echo foo > file1
。
cat
事物的实际作用。例如,执行less file1 > file2
(或grep '.*' file1 > file
或awk 1 file1 > file2
或...)具有相同的效果。同上4。这些只是滥用。
> file
并给出相同的结果,但是我不能认为用cat这样做是有效的吗?
cat
不创建文件,则可以。说cat
创建或复制文件只是错误的。
这是使用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
。
< <(cat file[12]) tr
以及<<<$(cat file[12]) tr
两种完全有效的重定向多个文件的方法。当然,您也需cat
要这样做,只是管道并不是唯一的方法。