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

原文地址:https://www.cnblogs.com/miracle-luna/p/11809725.html

时间: 2024-11-04 02:42:15

Linux Shell 中 > 和 >> 的异同点和应用场景的相关文章

linux shell中的比较符号与特殊符号介绍

shell字符串比较.判断是否为数字  二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别.  整数比较  -eq 等于,如:if [ "$a" -eq "$b" ]  -ne  不等于,如:if [ "$a" -ne "$b" ]  -gt 大于,如:if [ "$a" -gt "$b" ]  -ge 大于等于,如:if [  "$a" -ge "

理解 Linux shell 中的一个方言:2>&1

理解 Linux shell 中的一个方言:2>&1 2016-11-14 杜亦舒 前言 在使用 linux 命令或者 shell 编程时,这个用法常会遇到 2>&1 如果是刚开始接触Linux,这个东西的确不好理解,因为他没有直观的含义,不像一个命令,例如 cp是 copy 的简写,很好记. 我以前刚用Linux时就对这个东西迷糊了一段时间,今天刚好看到一篇文章介绍他,感觉很有必要总结出来,分享给还不是很理解这个方言的朋友. 下面看一个命令示例,然后分析下他是如何工作的: l

linux shell 中的位置变量

对于linux shell 中的位置变量,我一直以来都是吐不出来又咽不下去,每次看到都不懂,不懂了就去百度google,看完了又忘,真是慢性咽炎啊.现在认真想想也是,其实自己一直以来都没有好好学习过,只是看了些速成的东西,匆匆忙忙地扫描,然后以光的速度忘掉了.好了,不淡这些了,希望和大家共勉. 第一次在Makefile中看到位置参数这东西比如[email protected],$^,$<等 ,shell中的位置参数也长这样子,但含义是不一样的.在shell中 $#,表示传递到脚本的参数的个数 $

linux shell中的$0,$?,$!和&lt;&lt;&#39;END&#39;

变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以"$1 $2 - $n"的形式输出所有参数. [email protected] 所有参数列表.如"[email protected]"用「"」括起来的情况.以"$1

linux shell中&#39;&#39;,&quot;&quot;和``的区别

今天学习一个bash脚本,看到有一条:bin=`dirname "$0"` (dirname filename是输出该文件所在的目录,$0是该bash文件的文件名,在bash中一般使用cd `dirname $0`进入该脚本所在的目录中) 我尝试着cat $bin 输出是:. 然后我将反引号``去掉:bin=dirname "$0" 在运行cat $bin后报错. 网上查了一些bash的单引号'',双引号""和反引号``的区别. 单引号''和双引

Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2        ;; *) 默认执行的命令序列     ;; esac Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)_linux shell_脚本之家 在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果:但另一方面要避免这些

Linux shell中比较操作符&ldquo;==&rdquo;与&ldquo;-eq&rdquo;对比

在Linux shell编程中,经常会用到判断字符串是否相等,可用于判断字符串是否相等的操作符有'-eq'(相等), '-ne'(不等于), '-lt'(小于), '-le'(小于或等于), '-gt'(大于)或'-ge'(大于或等于),以及=,==,!=,<,>. 在bash指南中,字母操作符和符号操作符的两端的参数英语表达式不相同,符号操作符用的是string,字母操作符用的是arg. # http://www.gnu.org/software/bash/manual/bashref.ht

[转帖]Linux shell中2&gt;&amp;1的含义解释 (全网最全,看完就懂)

Linux shell中2>&1的含义解释 (全网最全,看完就懂) https://blog.csdn.net/zhaominpro/article/details/82630528 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhaominpro/article/details/82630528 A.首先了解下1和2在Linux中代表什么 在Linux系统中0 1 2是一个文件描述符 名称 代码 操作符 Java中表示 Linux 下文

Linux Shell中反引号``, 单引号&#39;&#39;, 双引号&quot;&quot;, $混用总结

用一个小程序(argv.py)来演示下: #!/usr/local/bin/python3 import sys print('sys.argv has these', len(sys.argv), 'elements:', sys.argv) 运行与结果: # 首先是赋予执行权限 chmod 755 argv.py #1 一个空格一个命令行参数 ./argv.py I love Shell scripting. sys.argv has these 5 elements: ['./argv.p