码迷,mamicode.com
首页 > 系统相关 > 详细

如何关闭linux系统中的覆盖输出重定向(>)功能

时间:2015-07-03 00:28:16      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:输出重定向、>

  一、问题描述      

        我们在进行文件操作时经常会用到覆盖输出重定向(>),追加输出重定向(>>),很明显的看出两种输出重定向的符号相差不是很大,但是两种的意义却又很大的差别:前者是会覆盖文件的内容的,而后者并不会覆盖文件的内容!我们在使用追加输出重定向时极有可能由于自己的不小心而使用覆盖重定向,从而导致文件内容的丢失,但是linux系统还是可以解决这种问题的。


二、问题演示

[root@hpf-linux~]# echo "cangls" > /root/test.txt 
[root@hpf-linux~]# cat /root/test.txt 
cangls
[root@hpf-linux~]# echo "longls" > /root/test.txt 
[root@hpf-linux~]# cat /root/test.txt 
longls
[root@hpf-linux~]# echo "cangls" >> /root/test.txt 
[root@hpf-linux~]# cat /root/test.txt 
longls
cangls


        通过上例可以很明显的看到使用>覆盖输出重定向会把文件test.txt的内容给删除,而使用>>追加输出输出重定向并不会把文件的内容给弄丢失,下面介绍如何使用小技巧把这种问题尽可能的杜绝。


三、技巧使用

  set -C:禁止覆盖重定向至已经存在的文件

  set +C:关闭上述特性:

  >|:在-C 特性下,强制使用覆盖重定向

[root@hpf-linux~]# set -C 
[root@hpf-linux~]# echo "xiaozels" > /root/test.txt 
-bash: /root/test.txt: cannot overwrite existing file
[root@hpf-linux~]# echo "xiaozels" >> /root/test.txt 
[root@hpf-linux~]# cat /root/test.txt 
longls
cangls
xiaozels
[root@hpf-linux ~]# echo "xiaozels" >| /root/test.txt 
[root@hpf-linux ~]# cat /root/test.txt 
xiaozels
[root@hpf-linux ~]# set +C 
[root@hpf-linux ~]# echo "bols" > /root/test.txt 
[root@hpf-linux ~]# cat /root/test.txt 
bols



        通过上面的例子可以看到使用set -C命令就可以把覆盖输出重定向的功能给关闭,但有时候还是要使用这功能咋办?显然可以用set +C 命令就可以了,但若我们又忘记关闭了咋办?显然系统还是有相应的办法的,就是在使用覆盖重定向时在后面加个|符号就可以继续使用覆盖重定向的功能了。最后今后在遇到类是可以改变文件内容的命令一定要小心!不要因为自己的一时大意而酿成不必要的后果!





本文出自 “粗茶淡饭” 博客,请务必保留此出处http://cuchadanfan.blog.51cto.com/9940284/1670308

如何关闭linux系统中的覆盖输出重定向(>)功能

标签:输出重定向、>

原文地址:http://cuchadanfan.blog.51cto.com/9940284/1670308

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!