假设我有一个目录列表:
archive_1
archive_2
archive_a
...
有没有一种简单的方法可以将这些目录分布到指定数量的目录中?例如:
distribute -t10 archive_*
应该生成 10 个目录:sub_1、sub_2、... sub_10
并且每个目录包含total number of archive_* directories/10
。类似于 split
的工作方式,但用于目录而不是文件。有什么建议吗?
最佳答案
我认为没有用于此的 Unix 命令,但您可以使用像这样的简单 Python 脚本。要分发目录中的所有文件,请调用 distribute.py -c10 -p sub *
#!/usr/bin/python
import sys, os, shutil
from optparse import OptionParser
p = OptionParser()
p.add_option("-c", "--count", type="int", default=10,
help="Number of dirs to distribute into", metavar="NUM")
p.add_option("-p", "--prefix", type="string", default="sub",
help="Directory prefix", metavar="PREFIX")
(options, args) = p.parse_args()
for x in range(0, options.count):
os.mkdir("%s_%d" % (options.prefix, x))
c = 0
for f in args:
shutil.move(f, "%s_%d" % (options.prefix, c))
c += 1
c %= options.count
关于linux - 如何分配目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7549876/