linux生物信息学

linux任务里的1> 和2>是什么意思

2019-04-13  本文已影响222人  Amy_Cui

输出

但是不管肿么样,他都是软件的日志信息,正确的提示日志也罢,错误的提示日志信息也罢,但凡提交到后台的任务,如果运行异常,我们就必须查询日志信息,这是任何一个运行任务或者前端端口必需学习的一个事情!因为有时候,即使运行没错,你也可能需要查询一下日志信息才能确认真的是正确的!

反正说了这么多,保存日志信息就是很重要。怎么理解呢,运行下面两句代码

find / -name '*gz'
# 功能:找到存储在这个服务器内所有gz结尾的文件

find / -name '*gz'  2>~/error.txt
避免屏幕上出现很多报错信息,影响找到正确信息,如find: ‘/lost+found’: Permission denied,所以吧错误信息输出到一个没用的文本内

运行示例:


image.png image.png image.png

为什么有1和2

我是这样理解的,通常一个程序有正确也有错误信息,但是我们有时候用>重定向符的时候会捕获正确输出,并且存到文本里面,但是如果错误输出也输入进去了,那么我们还要去用肉眼检查吗?如果文件很大的话,核查起来很困难的。再加上,我们希望报错信息在提交任务的时候尽可能出现在屏幕上,让我们能看到,因此正确和错误信息在计算机里确实是有两个输出流的~

1>log 2>&1

nohup ... &
这里的...是指你的代码,或者一个.sh的文本,(如果不懂的话,请学习linux下任务提交以及如何后台运行任务

# ...是任务命令,一下是不同格式的理解
... 1>log1 2>log2 &
# 会生成两个文本,一个是log1,一个是log2,
# 打开了两个文件

... 1>log1 2>&1 &
# 会生成一个文本,1和2的输出流都输出到了log1里面
# 打开一次文件

... 1>log1 2>log1 &
# 错误用法,因为>重定向符号是打开文本前先清空,所以2在写入文件的时候,会清空log1。会导致信息的丢失

不理解的直接做法

... 1>log1 2>&1 &
# 最佳做法,少存一个文本
# 为什么我不担心正确信息会和错误信息存一起呢,那怎么办
# 那是因为通常软件的正确结果信息,已经被输出到了一个文件内了,这里的1通常捕获的是日志信息,比如gatk的日志信息,特别多,约每10s都有一行运行提示信息

结束

打字打到手指痛,好心疼我的手指,大家再会。有错误/问题,直接留言!!!

上一篇下一篇

猜你喜欢

热点阅读