Fork me on GitHub

Linux Shell 中 > 和 >> 的异同点和应用场景

Linux Shell 中 > 和 >> 的异同点和应用场景 


 

> 和 >> 的异同点

举例说明(start.sh 为某个服务的启动脚本start.log 为某服务的日志文件):

nohup sh start.sh >/var/log/start.log &
nohup sh start.sh >>/var/log/start.log &

 

1、相同点

上面两种写法,都是将服务的日志内容,输出到指定文件中。

当 /var/log/ 目录下的 start.log 文件不存在时,均会创建 start.log 文件。

 

2、不同点

> :每次执行服务启动命令,start.log 文件中的内容都会被清除重新写入最新的日志信息。

>>:每次执行服务启动命令,start.log 文件中的内容不会被清除,最新的日志信息会追加到历史日志后面。


 

应用场景

从上面简单的解释,可以得出如下结论:

1、当不需要保留文件中的历史信息的时候,可以使用 > 方式。

比如:不想让 nohup 命令产生 nohup.out 文件。

我们常用如下命令启动服务,将日志信息输出到空文件(/dev/null)中:

nohup sh start.sh >/dev/null 2>&1 &

 

2、当需要保留文件中的历史信息的时候,必须使用 >> 方式。

比如:我们在集群化部署项目的时候(node1,node2, node3三个节点组成集群),经常会遇到要求服务器之间进行免密码互相访问,或者 scp 文件的场景。

如果 要求 node1 作为master节点,可以将 node1 中的文件免密码 scp 到 node2 和 node3 中。

在配置免密码过程中,需要将 node1 生成的公钥,追加到 node2 和 node3 的认证文件中。就需要用到如下命令:

cat authorized_keys2 >>authorized_keys

 

posted @   龙凌云端  阅读(2638)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示