如何将主目录中的文件组织成子目录中的较小数量的文件

如何将主目录中的文件组织成子目录中的较小数量的文件

我有一个包含 150 个文件的目录,我想将其拆分为每个包含 25 个文件的子目录:1-25 放入 dir1,26-50 放入 dir2,依此类推。我怎样才能做到这一点?

dir1/fre_4_g2_c3654214.h3

dir1/fre_4_g2_c0585433.h3

dir1/fre_4_g2_c3565415.h3

... 等等

我想做的是

dir1/fre_4_g2_c3654214.h3

dir2/fre_4_g2_c0585433.h3

dir3/fre_4_g2_c3565415.h3

答案1

这将按字母数字对文件进行排序,并将前 25 个文件移动到 subdirectory dir0,接下来的 25 个文件移动到 subdirectory dir1,依此类推,直到所有文件都被移动:

 n=0; for f in *; do d="dir$((n++ / 25))"; mkdir -p "$d"; mv -- "$f" "$d/$f"; done

对于那些喜欢将命令分散在多行中的人:

n=0
for f in *
do
    d="dir$((n++ / 25))"
    mkdir -p "$d"
    mv -- "$f" "$d/$f"
done

这将在 或 下ksh工作bash

相关内容