如何將主目錄中的檔案組織成子目錄中的較小數量的檔案

如何將主目錄中的檔案組織成子目錄中的較小數量的檔案

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

相關內容