【linux】linux 中 > 和 >>的区别, > 是代替rm 的安全方式

linux中>表示覆盖原文件内容(文件的日期也会自动更新),>>表示追加内容(会另起一行,文件的日期也会自动更新)。

一. >操作

1.执行命令 curl 'xxx' ,将其返回结果保存到 log.log 中

[root@gx-solr1 ~]# curl 'http://192.168.0.110:8983/solr/scan_detail/admin/file?_=1544066402749&contentType=text/plain;charset=utf-8&file=managed-schema&wt=json' > log.log

2.执行命令 cat /etc/hosts , 将其返回结果保存到 hosts.log 中

[root@slave1 ~]# cat /etc/hosts > hosts.log
[root@slave1 ~]# more hosts.log 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

可以看到,使用  >   ,执行命令时,每次都会新生成一个 > 后面的文件,将之前生成的文件替换掉(文件创建时间也会跟着改变)。

所以,如果对一个已经存在的 文件,使用 >。结果就是创建一个  新文件,覆盖了 原本存在的文件。

3. 上述效果,等同于  删除操作,例如 :删除 hosts.log 文件

即不对新生成的文件 输入任何内容。

[root@slave1 ~]# > hosts.log

所以,有些公司对于使用rm -rf  /* 等操作 讳莫如深或怕误操作。可以采用  >命令 直接跟 要删除的文件名,达到删除的效果

二.  >>操作

1.使用 >> 向 hosts.log中追加 当前日期

[root@slave1 ~]# ls -l hosts.log 
-rw-r--r--. 1 root root 11 Dec 13 16:04 hosts.log # 查看hosts.log 的日期
[root@slave1 ~]# cat hosts.log                    # 查看hosts.log 文件的内容
 I am OK! 
[root@slave1 ~]# echo "当前日期是 `date`" >> hosts.log  # 向hosts.log中追加 当前日期
[root@slave1 ~]# cat hosts.log                    # 再次查看hosts.log 文件的内容
 I am OK! 
当前日期是 Thu Dec 13 16:05:18 CST 2018         
[root@slave1 ~]# ls -l hosts.log                  # 再次查看hosts.log 的日期
-rw-r--r--. 1 root root 56 Dec 13 16:05 hosts.log
[root@slave1 ~]#
原文地址:https://www.cnblogs.com/sxdcgaq8080/p/12592400.html