免费注册 查看新帖 |

Chinaunix

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

[文件目录] 如何高效地将大量小文件平均分到各个文件夹中? [复制链接]

论坛徽章:
1
白羊座
日期:2014-11-13 10:19:16
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-22 08:17 |只看该作者 |正序浏览
本帖最后由 iocg 于 2014-09-22 09:01 编辑

现某文件夹A下有100w个小文件(.txt),大小10K左右。

假设文件数量的阈值设为20W。
将在A文件夹自动生成5个文件夹(命名:1~5),将100W个文件每20W个移动至5个文件夹中(不用按顺序)。

如何实现,怎样才能保证高效?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
21 [报告]
发表于 2014-09-23 13:26 |只看该作者
回复 20# Shell_HAT


    是这样啊,以前真没注意。

论坛徽章:
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
20 [报告]
发表于 2014-09-23 13:24 |只看该作者
回复 19# blackold


    Discuz论坛的两个JS脚本有bug,两个$符号放在code标签里面会丢掉一个。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
19 [报告]
发表于 2014-09-23 13:21 |只看该作者
本帖最后由 blackold 于 2014-09-23 13:21 编辑

回复 18# Shell_HAT


    Shell_HAT 什么意思? 看不懂。

论坛徽章:
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
18 [报告]
发表于 2014-09-23 12:56 |只看该作者
回复 17# blackold
  1. #1个$的实际效果:
  2. $
  3. #2个$的实际效果:
  4. $
  5. #3个$的实际效果:
  6. $$
  7. #4个$的实际效果:
  8. $$
复制代码

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
17 [报告]
发表于 2014-09-22 18:47 |只看该作者
回复 16# bulletmarquis


    漏了,是$$

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
16 [报告]
发表于 2014-09-22 18:42 |只看该作者
回复 15# blackold


    黑哥这句 prefix=prefix$ 是啥意思啊?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
15 [报告]
发表于 2014-09-22 17:43 |只看该作者
本帖最后由 blackold 于 2014-09-23 13:29 编辑

回复 13# iocg
  1. mkdir {1..5}

  2. prefix=prefix$$

  3. find -maxdepth 1 -type f -name '*.txt' | split -l 200000 -d -a1 - $prefix

  4. for i in {1..5};do xargs -a $prefix$i -d '\n' mv -i -t $i;done

  5. rm $prefix[0-9]
复制代码
原来不是我的错, 是论坛的错。

@Shell_HAT

论坛徽章:
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
14 [报告]
发表于 2014-09-22 14:24 |只看该作者
回复 13# iocg

大概是这样:
  1. ls | split -l 200000
  2. mkdir {0..4}
  3. awk '{cmd="mv "$0" "int(NR/200000);system(cmd);close(cmd)}' x*
复制代码

论坛徽章:
1
白羊座
日期:2014-11-13 10:19:16
13 [报告]
发表于 2014-09-22 14:03 |只看该作者
回复 9# blackold


    能不能给个代码参考下呢?
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP