免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3151 | 回复: 10
打印 上一主题 下一主题

[文本处理] shell中清空文件,错误信息无法被过滤掉 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-19 14:33 |只看该作者 |倒序浏览


[oracle@localhost ~]$ ls -ltr test01.txt
---------- 1 oracle oinstall 20 Apr 19 14:29 test01.txt

[oracle@localhost ~]$ >test01.txt
-bash: test01.txt: Permission denied

[oracle@localhost ~]$ >test01.txt >/dev/null 2>&1
-bash: test01.txt: Permission denied

[oracle@localhost ~]$ echo "">test01.txt >/dev/null 2>&1
-bash: test01.txt: Permission denied

[oracle@localhost ~]$ cat /dev/null > test01.txt >/dev/null 2>&1
-bash: test01.txt: Permission denied

现在不想在标准输出中输出错误信息,应该如何处理。
请各位大侠指教。

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
2 [报告]
发表于 2013-04-19 15:32 |只看该作者
试了下你上面的一些方法是可以的,难道是系统不同?

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
3 [报告]
发表于 2013-04-19 15:39 |只看该作者
  1. >test01.txt >/dev/null 2>/dev/null
复制代码
这样呢?

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
4 [报告]
发表于 2013-04-19 16:35 |只看该作者
回复 2# seesea2517


    哪些方法是能用的?  我这边测试,都屏蔽不了这个输出

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
5 [报告]
发表于 2013-04-19 16:39 |只看该作者
本帖最后由 seesea2517 于 2013-04-19 16:39 编辑

回复 4# 关阴月飞

写了一个,测了一个:
  1. [seesea@UC ~]$ cd xxx
  2. -bash: cd: xxx: 权限不够
  3. [seesea@UC ~]$ cd xxx 2>/dev/null
  4. [seesea@UC ~]$ cd xxx >/dev/null 2>&1
复制代码
  1. [seesea@UC ~]$ bash --version
  2. GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
  3. Copyright (C) 2005 Free Software Foundation, Inc.
  4. [seesea@UC ~]$ uname -a
  5. Linux seesea2517 2.6.18-128.2.1.el5 #1 SMP Tue Jul 14 06:39:56 EDT 2009 i686 i686 i386 GNU/Linux
复制代码

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
6 [报告]
发表于 2013-04-19 16:43 |只看该作者
在坛子里找了一下,有个贴子里有个解决方法:
http://bbs.chinaunix.net/thread-2320527-1-1.html
  1. (>test01.txt)2>/dev/null
复制代码

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
7 [报告]
发表于 2013-04-19 16:48 |只看该作者
本帖最后由 关阴月飞 于 2013-04-19 16:48 编辑

回复 5# seesea2517


    cat 和 cd 这类命令是可以屏蔽掉,但 >file  和 echo "">file 之类命令中涉及到重定向的操作,就屏不掉了。

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
8 [报告]
发表于 2013-04-19 16:49 |只看该作者
回复 7# 关阴月飞


    原来如此,多谢指导。果然稍微一点不一样就效果天差地啊。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
9 [报告]
发表于 2013-04-19 17:08 |只看该作者
[abc]$ more /root/te > /dev/null 2>&1
[abc]$ cat /root/te > /dev/null 2>&1
[abc]$ cat > /root/te > /dev/null 2>&1
-bash: /root/te: Permission denied
[abc]$

从上面的测试看出 cat 已经把标准输入/dev/null的输出定向到文件,而标准错误的文件描述符还是2也就是stderr 。
也就是说LZ的命令分几部分:

cat > /dev/null(标准输出定向,标准错误未定向)
> /dev/null 2>&1 实际上是没有任何作用

你可以用别的命令more  filename > /rediretfile 2>&1测试下,
没有报错。

论坛徽章:
0
10 [报告]
发表于 2013-04-19 18:51 |只看该作者
又学习了,嘎嘎
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP