我想知道是否有一种简单的方法可以自动(以编程方式,在一个巴什script) 将文件夹的内容拆分为具有父文件夹的子文件夹。
我有一个文件夹,比方说,有 580 个文件(具有相同的后缀),我想将其分成六个子文件夹,名为 例如subfolder1
、subfolder2
等,并放入每 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')