linux 下一个目录里面有大概 60w 个小文件,如何把他们移动到不同的目录里面去啊?

2014-03-29 09:41:25 +08:00
 leyle
一个目录下,大概有60w个小文件,每个文件在10~40k之间,现在ls一下都要等待半天,有无方法可以把这60w的小文件,分别移动到不同的目录里面去,比如说,一个目录存放1w个小文件?
3026 次点击
所在节点    问与答
8 条回复
clino
2014-03-29 09:45:06 +08:00
问题是你要怎么分类? 用文件名还是用时间什么的
leyle
2014-03-29 09:51:25 +08:00
@clino 无所谓怎么分类,只要能分割移动到不同的目录就行了,类似于 folder_1, folder_2, ....folder_n
文件名没有特别的规则,都是数字和字母的组合,
yangqi
2014-03-29 09:58:50 +08:00
leyle
2014-03-29 10:21:44 +08:00
@yangqi 这些方法都要遍历了整个目录里面的文件后才能决定如何操作,我想要的是,不需要遍历,因为遍历太耗时间了,
yangqi
2014-03-29 10:44:59 +08:00
@leyle ls | head -n10 不用遍历整个目录的
toctan
2014-03-29 11:53:32 +08:00
@yangqi @leyle 建议使用 GNU parallel: http://www.gnu.org/software/parallel/

ls -1 | head -n 10000 | parallel -m mv {} folder_1

这样会快很多。
msg7086
2014-03-29 13:44:14 +08:00
猜测并不是ls慢,而是把ls的结果显示在屏幕上慢……
Lax
2014-03-29 21:26:54 +08:00
find --exec
先man find,有疑问再google(不能说太general,因为我每次也是这个步骤)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/106365

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX