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