免费注册 查看新帖 |

Chinaunix

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

find + xargs 疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-10 11:07 |只看该作者 |倒序浏览
我在$HOME下执行下列语句
find $HOME/person/LH -mtime +10 -exec ls {} \;
返回结果为空(因为这个路径下没有10天前的文件,只有最近几天的)
但是如果我执行
find $HOME/person/LH  -mtime +10|xargs ls
却返回了$HOME目录下的文件列表

上面两个命令功能是相同的吧。
我将上面两个语句的-mtime参数后的数字改为1,那么它们俩都返回了相同的正确结果。
为什么使用xargs时如果没有查找到相应的文件会返回ls $HOME的结果?

论坛徽章:
0
2 [报告]
发表于 2007-04-10 11:22 |只看该作者
执行语句: find /metrica/npr/spool/NPM/ericsson/gmtjmas1o -mtime +40 -exec ls {} \;
返回结果:20060806  20070305  20070309  20070313  20070317  20070321  20070325  20070329  20070402  20070406  20070410 20070302  20070306  20070310  20070314  20070318  20070322  20070326  20070330  20070403  20070407 20070303  20070307  20070311  20070315  20070319  20070323  20070327  20070331  20070404  20070408 20070304  20070308  20070312  20070316  20070320  20070324  20070328  20070401  20070405  20070409

结果中的文件夹都是在名称中对应的时间生成的,我查找修改时间在40天前的文件,怎么他们都被列出来了?
而且我执行find /metrica/npr/spool/NPM/ericsson/gmtjmas1o -mtime -40 -exec ls {} \;
         或者find /metrica/npr/spool/NPM/ericsson/gmtjmas1o -mtime 40 -exec ls {} \;
就什么结果都没有,这个-mtime参数的含义我没理解错吧,换成-ctime执行的结果相同!

论坛徽章:
0
3 [报告]
发表于 2007-07-30 23:46 |只看该作者
我也有同样的疑惑,用find+xargs时,没有匹配的文件就运行了xagrs后面的命令了。怎么解释啊?

论坛徽章:
0
4 [报告]
发表于 2007-07-31 01:41 |只看该作者
原帖由 sxqsir 于 2007-7-30 23:46 发表
我也有同样的疑惑,用find+xargs时,没有匹配的文件就运行了xagrs后面的命令了。怎么解释啊?



来自 xargs 的 manual

--no-run-if-empty, -r
    If  the  standard  input does not contain any nonblanks, do not run the command.  Normally, the command is run once
     even if there is no input.

论坛徽章:
0
5 [报告]
发表于 2007-07-31 14:00 |只看该作者
thx!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP