在子文件夹中分发数千个文件

Ame*_*ina 4 zsh shell-script files

我有一个A包含数十万个文件的文件夹。我想将这些文件移动到新的子文件夹中S_i,例如,每个子文件夹中有 100 个文件(最后一个文件夹可能少于 100 个文件)

换句话说,如果我的文件夹A有:

file1
file2
...
file1000
Run Code Online (Sandbox Code Playgroud)

我以后会有:

S_1:    
    file_1
    ...
    file_100    
S_2:
    file_101
    ...
    file_200
...
Run Code Online (Sandbox Code Playgroud)

在我手动编写 Zsh 脚本来执行此任务(例如使用变量来计算文件)之前,我想知道是否有任何现成的工具(如split)可以促进此任务。

Lri*_*Lri 8

如果文件名不包含空格:

i=1;while read l;do mkdir $i;mv $l $((i++));done< <(ls|xargs -n100)
Run Code Online (Sandbox Code Playgroud)

使用parallel

ls|parallel -n100 mkdir {#}\;mv {} {#}
Run Code Online (Sandbox Code Playgroud)