0
每个具有几个文件到子文件夹的一个多层次的子文件夹的数百个文件夹我有以下数据目录:斯普利特其中有使用shell
root/A/1
root/A/2
root/B/1
root/B/2
root/B/3
root/C/1
root/C/2
而且我想把它转换成以下文件结构:
root2/I/A/1
root2/I/A/2
root2/I/B/1
root2/I/B/2
root2/I/B/3
root2/II/C/1
root2/II/C/2
这样做的目的是我想运行一些脚本,它取回主文件夹(root在这里)并运行它。我想在许多文件夹(I,II)上并行运行它以加速此过程。
有关文件和文件夹名称的简单假设是所有文字都是字母数字,甚至没有句点或下划线。
编辑:我尝试以下操作:
for i in `seq 1 30`; do mkdir -p "root2/folder$i"; find root -type f | head -n 4000 | xargs -i cp "{}" "root2/folder$i"; done
问题是,它创建类似下面的,这不是我想要的。
root2/I/1
root2/I/2
root2/I/1
root2/I/2
root2/I/3
root2/II/1
root2/II/2
那你知道哪个目录进入'A'和成'乙'? –
@BenjaminW。你是否意味着哪些目录进入了我,哪些进入了II。我不太在意。我只是想让他们平分秋色,比如30个小组。这样我可以在30个文件夹上调用我的命令。 – Shweta
如果我理解了这个问题,你可以沿着这些方向做一些事情:'a = 0;因为我在$(ls);请让a ++; [[$(($ a%60))-gt 30]] && mv $ i I || mv $ i II;完成' –