Linux下实现文件夹内随机拷贝文件到另一个文件夹
前几天,搞训练集和验证集划分的时候,从源文件中拷贝训练集和验证集,没考虑到样本的均分,导致训练效果不尽如人意。又回过头来重新划分下,参考几个大神的代码,自己搞了个随机拷贝文件脚本,代码如下:
datapath='源文件路径'trainpath='训练集目标文件路径'dirlist=`ls $datapath`dirNum=`ls $datapath -l|grep "^-"|wc -l`#echo $dirNumk=0for fileName in $dirlistdo fileNameArr[k]=$fileNamek=$k+1donearr=( $(seq 1 $dirNum ))num=${#arr[*]}#echo $numfilterNum=120res=${arr[$(( $RANDOM%num ))]}fileArr[1]=$res#echo $fileArr[1]let i=2while(( i <= filterNum));dores=${arr[$(($RANDOM%num))]}fileArr[i]=$res#echo $res#echo ${fileArr[i]}for ((j=1 ; j<i ; j++));donumJ=${fileArr[j]}if [ $res = $numJ ]thenunset fileArr[i]((i--))#i=$i-1breakfidone((i++))#i=$i+1donefor (( indexNum = 0 ; indexNum < $filterNum ; indexNum++ ))do#i=${fileArr[indexNum]}#echo $i#echo ${fileNameArr[$i]}echo $indexNummv $datapath/${fileNameArr[${fileArr[indexNum]}]} $trainpathdone