在Linux系统下,当一个文件夹下的文件过多,则文件列表读取会很慢,而且不利于进行cp 或mv 操作,应对与此,我们通过一个分发脚本程序对指定文件夹的数据进行分发,重新分配到多个文件夹下。
- #! /bin/sh
- ###########################################
- scrDir=/data/path/
- splitNum=3
- count=1
- while true; do
- FileList =`ls $scrDir|grep txt`
- if [ -z “$FileList” ]
- then
- #The filelist is empty, sleep 10s
- sleep 10s
- else
- #The folder has files, so mv it
- for FILE in $FileList
- do
- if [ $count -gt $splitNum ]
- then
- count=1
- fi
- mkdir -p $scrDir$count‘/’
- mv $srcDir${FILE} $srcDir$count‘/’
- if [ $? !=0 ]
- then
- logger -t “Dispatch $scrDir” -i “Move file $FILE fail, retry later.”
- fi
- count= expr $count + 1
- done
- times
- fi
- done