免费注册 查看新帖 |

Chinaunix

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

[求助]每一千个文件夹放入另一个文件夹 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-26 10:01 |只看该作者 |倒序浏览
我在linux下创建了大约2万多个文件夹,但是这样管理起来太费事了。特别是想ls的时候。

请问有什么方便的方法将每1000个文件夹放到一个新文件夹里,比如1-1000放到U01,1001-2000放到U02,一直到最后一批(可能不够1000)放到最后一个UXX里面。

请问各位大虾,这样的操作如何实现?

论坛徽章:
0
2 [报告]
发表于 2010-05-26 10:25 |只看该作者
文件名有没有规律阿?
如果没有的话,就从目录下轮询,找到一个文件,判断是文件夹就mv到U01,然后i+1。
...如此循环
我会c,不会shell,只能说说思路

论坛徽章:
5
寅虎
日期:2015-01-20 09:16:52亥猪
日期:2015-01-21 14:43:44IT运维版块每日发帖之星
日期:2015-12-17 06:20:00每日论坛发贴之星
日期:2015-12-17 06:20:00每周论坛发贴之星
日期:2015-12-20 22:22:00
3 [报告]
发表于 2010-05-26 10:40 |只看该作者
  1. #for ((i=1;i<=1000;i++));do mv $i u01;done
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-05-26 11:00 |只看该作者
学习下

论坛徽章:
0
5 [报告]
发表于 2010-05-26 11:19 |只看该作者
for i in $(ls |head -n 1000);do MV XXXXX;  done;

论坛徽章:
0
6 [报告]
发表于 2010-06-02 18:54 |只看该作者
不会shell,纯学习

论坛徽章:
0
7 [报告]
发表于 2010-06-02 20:48 |只看该作者
本帖最后由 炙热的雪 于 2010-06-02 20:49 编辑

用awk可以做到

论坛徽章:
0
8 [报告]
发表于 2010-06-02 22:25 |只看该作者
  1. #!/bin/bash

  2. #得到一个文件夹得绝对路径

  3. smu=$(find /username -type d -maxdepths 1)

  4. dmu=/user/u

  5. #循环次数的定义,n/1000取余,然后如果比如22200,应该是22200%1000的结果是22,但是咱们看应该需要23个文件夹。

  6. xhcs=$(((($(find /username -type d -maxdepths 1 | wc -l)/1000))+1))

  7. for i in $(seq 1 $xhcs)

  8. do

  9. for j in {1..1000}

  10. do

  11. mv $smu /user/u$i

  12. done

  13. done

复制代码



新手献丑,如果不恰当的地方,希望各位大大口下留情,多多指教。谢谢
新手献上!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP