Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 什么是cat文件名1 2>;文件名2_File_Shell - Fatal编程技术网

File 什么是cat文件名1 2>;文件名2

File 什么是cat文件名1 2>;文件名2,file,shell,File,Shell,我有这样一个shell脚本 cat file1.dat 2> file2.log 有人能解释一下这是什么意思吗。我找了很多,但什么也没找到。我查过这一个。但是没有找到这个2>。我对shell脚本完全是个新手。非常感谢您的帮助。2>表示重定向文件描述符2,它通常是stderr。而没有2则是标准输出。2>表示重定向文件描述符2,通常是标准输出。如果没有2,它是标准输出。2>是shell语法,因此您应该查看shell文档。它可以与任何命令一起使用,而不仅仅是cat。它重定向文件描述符2,这是标

我有这样一个shell脚本

cat file1.dat 2> file2.log

有人能解释一下这是什么意思吗。我找了很多,但什么也没找到。我查过这一个。但是没有找到这个
2>
。我对shell脚本完全是个新手。非常感谢您的帮助。

2>
表示重定向文件描述符2,它通常是stderr。而没有2则是标准输出。

2>
表示重定向文件描述符2,通常是标准输出。如果没有2,它是标准输出。

2>
是shell语法,因此您应该查看shell文档。它可以与任何命令一起使用,而不仅仅是
cat
。它重定向文件描述符2,这是标准错误流


如果您的
cat
命令有任何错误(
file1.dat
不存在,或者您没有读取它的权限,或者其他任何内容),则来自
cat
的错误消息将进入
file2.log
而不是进入您的终端(或shell错误流最初连接的任何位置).

2>
是shell语法,因此您应该查看shell文档。它可以与任何命令一起使用,而不仅仅是
cat
。它重定向文件描述符2,这是标准错误流


如果您的
cat
命令有任何错误(
file1.dat
不存在,或者您没有读取它的权限,或者其他任何内容),则来自
cat
的错误消息将进入
file2.log
而不是进入您的终端(或shell错误流最初连接的任何位置).

这就是说,将
cat file1.dat
的输出发送到
/dev/stderr
file2.log

本质上,
cat file1.dat 2>file2.log
将打印到STDERR的所有文本发送到
file2.log

以下是一些其他示例:

cat file1.dat 1>file2.log#将标准输出发送到file2.log
cat file1.dat 1>&2#将标准输出发送到标准输出
cat file1.dat&>file2.log#将STDERR和STDOUT都发送到file2.log
cat file1.dat 2>&1#将STDERR发送到STDOUT

而且,根据您的shell,可能会支持更高级的I/O重定向

也就是说,将
cat file1.dat
的输出发送到
/dev/stderr
文件2.log

本质上,
cat file1.dat 2>file2.log
将打印到STDERR的所有文本发送到
file2.log

以下是一些其他示例:

cat file1.dat 1>file2.log#将标准输出发送到file2.log
cat file1.dat 1>&2#将标准输出发送到标准输出
cat file1.dat&>file2.log#将STDERR和STDOUT都发送到file2.log
cat file1.dat 2>&1#将STDERR发送到STDOUT

而且,根据您的shell,可能会支持更高级的I/O重定向

2>
是一个shell构造。您在
cat
文档中找不到它

通常(在shell上下文中),
表示将std错误输出重定向到
file2.txt

这似乎是一个奇怪的结构。请注意,此代码将仅捕获错误消息。 从
cat
获取错误消息的通常方法是该文件不存在

此代码的另一个问题是单个
指示“创建一个新文件2.txt”(即使已经存在)

就你的目的而言,这可能就足够了。在许多情况下,人们希望看到活动的历史。在这种情况下,您需要使用
append
重定向形式,使用
2>>file2.txt

您需要更多地了解这里的上下文,才能对您继承的代码为何设置为这样做做出进一步有意义的评论


IHTH是一个shell构造。您在
cat
文档中找不到它

通常(在shell上下文中),
表示将std错误输出重定向到
file2.txt

这似乎是一个奇怪的结构。请注意,此代码将仅捕获错误消息。 从
cat
获取错误消息的通常方法是该文件不存在

此代码的另一个问题是单个
指示“创建一个新文件2.txt”(即使已经存在)

就你的目的而言,这可能就足够了。在许多情况下,人们希望看到活动的历史。在这种情况下,您需要使用
append
重定向形式,使用
2>>file2.txt

您需要更多地了解这里的上下文,才能对您继承的代码为何设置为这样做做出进一步有意义的评论

IHTH

这是bash的通用规则(或者不管您使用什么shell,其他shell可能有一些不同的规则),与cat无关。所以搜索cat文档是没有帮助的。这对于bash来说是通用的(或者您使用的任何shell,其他shell可能有一些不同的规则),与cat无关。因此,搜索cat文档是没有帮助的。