如何将文件夹的内容拆分为子文件夹

如何将文件夹的内容拆分为子文件夹

我想知道是否有一种简单的方法可以自动(以编程方式,在一个巴什script) 将文件夹的内容拆分为具有父文件夹的子文件夹。

我有一个文件夹,比方说,有 580 个文件(具有相同的后缀),我想将其分成六个子文件夹,名为 例如subfolder1subfolder2等,并放入每 100 个文件(最后一个文件除外,其中包含其余文件),或者均匀拆分,如果更容易的话)。

谢谢

答案1

zsh而不是bash

subfolders=( subfolder{1..6} )
files=( *(N.) )
n=100
while (( $#files && $#subfolders )); do
  mkdir -p -- $subfolders[1] && mv -- $files[1,100] $subfolders[1]/
  subfolders[1]=() files[1,100]=()
done

zmv您还可以使用(zsh 的批量重命名器)以循环方式移动它们:

autoload -Uz zmv
subfolders=( subfolder{1..6} )
mkdir -p -- $subfolders
(n=0; zmv '*(#q.)' '$subfolders[n++ % $#subfolders + 1]/$f')

相关内容