思路:bash
1. 将海量文件,ls 出文件清单;
2. 使用split将清单,以2000位单位切割成N个小文件清单
3. 使用for循环语句,结合seq增量计数,逐一处理
4. 为避免机器处理不及时,造成文件积压,过程当中使用where循环检查目标目录文件数量
code
#!/bin/bash fsource=/root/script/vlist/file_split- dsource=/root/vfpa/temp/02 dtarget=/root/vfpa/source/IWSCIM for i in `seq -w 66` do FILENAME=$fsource$i for j in `cat $FILENAME` while (( `ls -l $dtarget | wc -l` > 1000 )); do sleep 1m; done; do mv $dsource/$j $dtarget done echo process done $i files, Sleeping in 20 minutes >> /root/script/vfpa_list3_mv.log sleep 20m continue done ### split -a 2 -l 2000 -d Flist vlist/file_split-