【BASH】如何防止在重定向时覆盖现有文件
来源:互联网 发布:linux 串口登陆 编辑:程序博客网 时间:2024/06/15 16:33
【BASH】如何防止在重定向时覆盖现有文件
通常我们都不希望因为操作失误而错误的删除文件,但在使用重定向保存结果的时候却很容易出现这种情况。那么如何解决呢?
通过shell
通过设定bash的选项noclobber,在默认的情况下,这个选项是打开的
set -onoclobber
noclobber
这个选项告诉bash在重定向的时候不要覆盖已有文件。
看下面的例子
把这个选项关掉
$ set +onoclobber
$ echosomething > my.file
$ echo somemore > my.file
打开这个选项
$ set -onoclobber
$ echosomething > my.file
bash: my.file:cannot overwrite existing file
$ echo somemore >> my.file
$
可以看到在打开这个选项的时候,如果重定向到已有文件,bash会提示出错。
不过记住,这个选项不是万能的,它只是bash自己使用的选项而已
请看下面的这个例子
$ echo uselessdata > some.file
$ echoimportant data > other.file
$ set -onoclobber
$ cp some.fileother.file
$
这个选项对于cp就是没有效果的。
如果你觉得这个选项不重要,思考下如果重定向的文件名是由正则表达式生成的,或者是通过参数传递给你的脚本。
- 【BASH】如何防止在重定向时覆盖现有文件
- 【BASH】在设定了noclobber之后,如何强制覆盖现有文件
- 如何将bash同时重定向到标准输出和其他文件
- Bash shell 重定向
- Bash输入输出重定向
- bash 重定向
- bash 重定向
- Bash shell 重定向
- [bash]文件描述符、重定向以及tee命令
- 如何重定向stdout,stderr到文件
- 如何在命令行输出重定向
- Bash的输入输出重定向
- Bash的输入输出重定向
- Bash的输入输出重定向
- Bash的输入输出重定向
- Bash I/O重定向
- Bash的输入输出重定向
- Bash的输入输出重定向
- 如何判断文章是否被EI收录
- 新浪换标,也许应该做点什么了
- Application Architecture Guide 2.0 学习笔记(一)前言 - Quality Attributes
- IT技术中的言情小说
- HTTP上下文_HttpContext
- 【BASH】如何防止在重定向时覆盖现有文件
- 用代码给DataGridView添加新行
- 检测各种浏览器、系统的JS代码
- JAVA完全控制Oracle中BLOB CLOB说明
- 如何构建CMDB?
- 分页:页码显示javascript
- Google App Engine Support Java™ Language
- 世界上最牛的程序员
- 40种网页常用小技巧(javascript)