免费注册 查看新帖 |

Chinaunix

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

[文件目录] 请教个shell的分号问题 [复制链接]

求职 : 系统工程师等
论坛徽章:
5
技术图书徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28双子座
日期:2014-06-16 15:08:042015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-26 09:46 |只看该作者 |倒序浏览
我的一个shell脚本里,有个删除特定目录的命令:
find ./ -type d -mtime +2 | xargs rm -rf {}

如果加上分号:
find ./ -type d -mtime +2 | xargs rm -rf {};
就不生效了,无法删除。
不加是可以的。


但是我在shell测试其他命令,如:
ls是正常的,ls;也是正常的。

按理说,分号只是分隔符,怎么会这样呢?

谢谢!

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-16 06:20:00
2 [报告]
发表于 2014-06-26 09:55 |只看该作者
find之后直接执行-exec不好么?

论坛徽章:
0
3 [报告]
发表于 2014-06-26 10:01 |只看该作者
@qxhgd

用了管道,我认为就不可以加分号了。

论坛徽章:
0
4 [报告]
发表于 2014-06-26 10:07 |只看该作者
我猜楼主,你是想用这种想法吧。
find ./ -type d -mtime +2 -exec rm -rf {} \;

论坛徽章:
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
5 [报告]
发表于 2014-06-26 10:32 |只看该作者
本帖最后由 关阴月飞 于 2014-06-26 10:32 编辑

回复 1# qxhgd

    我的一个shell脚本里,有个删除特定目录的命令:
find ./ -type d -mtime +2 | xargs rm -rf {}

如果加上分号:
find ./ -type d -mtime +2 | xargs rm -rf {};
就不生效了,无法删除。
不加是可以的。


LZ,你确定不生效了????
  1. [root@ awktest]# find . -name 'db*'
  2. ./db6
  3. ./db5
  4. ./db4
  5. ./db3
  6. ./db2
  7. ./db1
  8. [root@ awktest]# find . -name 'db*' |xargs rm -rf {};
  9. [root@ awktest]# find . -name 'db*'
  10. [root@ awktest]# ls db*
  11. ls: 无法访问db*: 没有那个文件或目录
  12. [root@ awktest]#
复制代码

论坛徽章:
0
6 [报告]
发表于 2014-06-26 10:56 |只看该作者
@qxhgd
  1. [root@www test]# find ./ -type d -mtime +1 | xargs rm -rf {};
  2. rm: cannot remove directory `./': Invalid argument
复制代码
试过了,是可以删除的。

求职 : 系统工程师等
论坛徽章:
5
技术图书徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28双子座
日期:2014-06-16 15:08:042015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
7 [报告]
发表于 2014-06-26 12:00 |只看该作者
回复 2# nathanielwen


    -exec和xargs功能是一样的吧?

   感觉xargs还要强些。

求职 : 系统工程师等
论坛徽章:
5
技术图书徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28双子座
日期:2014-06-16 15:08:042015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
8 [报告]
发表于 2014-07-01 14:07 |只看该作者
我发现换成exec也是一样的。
现象是直接在这个目录执行命令是OK的,
但是放到脚本中利用crontab定时执行就不删除目录了!


怪事啊!

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
9 [报告]
发表于 2014-07-01 14:14 |只看该作者
回复 8# qxhgd
你的crontab是怎么写的?

   

论坛徽章:
0
10 [报告]
发表于 2014-07-01 16:45 |只看该作者
crontab千万别写绝对路径,系统会爆炸的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP