プライマリディレクトリのファイルをサブディレクトリのより少ない数のファイルに整理する方法

プライマリディレクトリのファイルをサブディレクトリのより少ない数のファイルに整理する方法

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個のファイルがサブディレクトリに移動され、次のdir025個のファイルが下位ディレクトリに移動されるよう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

おすすめ記事