一个数据集下载下来有多个部分,part1,part2,part3…需要将这多个部分合成一个部分。查了下,没找到直接可以达到效果的命令行(试过cat,rsync等)
解决方案:
写一段python脚本:merge_folder.py
#!/usr/bin/env python3
import argparse
import os
def move_merge_dirs(source_root, dest_root):
for path, dirs, files in os.walk(source_root, topdown=False):
dest_dir = os.path.join(
dest_root,
os.path.relpath(path, source_root)
)
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
for filename in files:
os.rename(
os.path.join(path, filename),
os.path.join(dest_dir, filename)
)
for dirname in dirs:
os.rmdir(os.path.join(path, dirname))
os.rmdir(source_root)
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Move merge src/* into dest. Overwrite existing files.'
)
parser.add_argument('src_dir')
parser.add_argument('dest_dir')
args = parser.parse_args()
move_merge_dirs(args.src_dir, args.dest_dir)
然后将脚本.py文件放入part1,part2,part3…文件夹,
然后进行合并:python merge_folder.py part1 part2(将part1,part2合并到part2),这样之后,就没了part1文件夹,part1中的内容到part2中去了,然后按照相同规律合并part2,part3,最后只会剩下一个文件夹,包含了part1,part2,part3…中所有的内容。
后面发现,貌似这个命令行也可以实现一样的效果,不过没有尝试过:https://www.linuxidc.com/Linux/2012-12/75974.htm。