加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 在Unix上将非常大的目录拆分为较小的目录的单行程序

发布时间:2020-12-15 21:57:42 所属栏目:安全 来源:网络整理
导读:在UNIX上,如何将包含可能数百万个文件的非常大的目录拆分为某些自定义最大文件数的较小目录,例如每个目录100个? 如果您知道将wget文件自动下载到这些子目录中的方法,则可获得奖励积分.因此,如果在www.example.com的顶级路径上有100万个.html页面,例如 /1.ht
在UNIX上,如何将包含可能数百万个文件的非常大的目录拆分为某些自定义最大文件数的较小目录,例如每个目录100个?

如果您知道将wget文件自动下载到这些子目录中的方法,则可获得奖励积分.因此,如果在www.example.com的顶级路径上有100万个.html页面,例如

/1.html
/2.html
...
/1000000.html

我们每个目录只需要100个文件,它会将它们下载到类似的文件夹中

./www.example.com/1-100/1.html
...
./www.example.com/999901-1000000/1000000.html

只有在wget下载文件后才真正需要能够在文件夹上运行UNIX命令,但是如果可以通过wget执行此操作,因为它正在下载我很想知道!

解决方法

另外一个选项:

i=1;while read l;do mkdir $i;mv $l $((i++));done< <(ls|xargs -n100)

或者使用并行:

ls|parallel -n100 mkdir {#};mv {} {#}

-n100一次获取100个参数,{#}是作业的序列号.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读