我有一个包含 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
。