免费注册 查看新帖 |

Chinaunix

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

[系统管理] find没有查找到文件,但计算出的大小大于0的问题 [复制链接]

论坛徽章:
1
2015亚冠之西悉尼流浪者
日期:2015-05-18 14:38:40
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-05-16 10:25 |只看该作者 |倒序浏览
[root@node02 relay]# cd /data/log/4001/dblogs/relay/; find ./ -type f -cmin -15
[root@node02 relay]# cd /data/log/4001/dblogs/relay/; find ./ -type f -cmin -15 |xargs du -ck  
24      .
24      total
[root@node02 relay]#


从上面可以看到,/data/log/4001/dblogs/relay/目录下最近15分钟发生过变化的文件是没有的,但是我加上xargs du -ck后,结果是24K,
请问这个24K是如何算出来的呢?为什么不是0呢?

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
2 [报告]
发表于 2015-05-17 10:23 |只看该作者
你单独运行du -ck看一下
命令格式:
du [选项][文件]
2.命令功能:
显示每个文件和目录的磁盘使用空间。
3.命令参数:
-a或-all  显示目录中个别文件的大小。   
-b或-bytes  显示目录或文件大小时,以byte为单位。   
-c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes  以KB(1024bytes)为单位输出。
-m或--megabytes  以MB为单位输出。   
-s或--summarize  仅显示总计,只列出最后加总的值。
-h或--human-readable  以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem  以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。   
-S或--separate-dirs   显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件>  在<文件>指定目录或文件。   
--exclude=<目录或文件>         略过指定的目录或文件。   
-D或--dereference-args   显示指定符号链接的源文件大小。   
-H或--si  与-h参数相同,但是K,M,G是以1000为换算单位。   
-l或--count-links   重复计算硬件链接的文件。  

论坛徽章:
12
技术图书徽章
日期:2014-07-11 16:27:5215-16赛季CBA联赛之山西
日期:2016-01-08 16:10:11操作系统版块每日发帖之星
日期:2015-08-01 06:20:002015亚冠之武里南联
日期:2015-06-11 01:12:162015年亚洲杯之阿联酋
日期:2015-03-20 11:41:462015年亚洲杯纪念徽章
日期:2015-03-18 18:08:422015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-10 22:23:32天秤座
日期:2014-08-20 15:53:35水瓶座
日期:2014-08-11 12:08:51午马
日期:2014-07-23 23:03:38IT运维版块每日发帖之星
日期:2016-02-18 06:20:00
3 [报告]
发表于 2015-05-17 10:48 |只看该作者
本帖最后由 phanx 于 2015-05-17 10:51 编辑

回复 1# orablue


    因为当 find 没有找到任何文件的时候,传给xargs du -ck 就是一个空行,相当于直接执行 du -ck 命令。
也就是说在cd /data/log/4001/dblogs/relay/ 后,  相当于在 /data/log/4001/dblogs/relay 这个目录下执行 du -ck 命令。
du的对象也就是目录本身了。

正确的写法是 cd /data/log/4001/dblogs/relay/; find ./ -type f -cmin -15 |xargs -r  -n1 du -ck  


man xargs

-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.
  This option is a GNU extension.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP