我有一个包含> 10000000个文件的文件夹,需要将它们移动到每个5000个单独的文件夹中。使用批处理脚本,如何将它们移动到单个文件夹?
i=0
while [ 1 ]; do
ls | head -5000 > ../files
if [ ! -s ../files ]; then
break
fi
i=`expr $i + 1` # I know. Boomer here.
mkdir ../dir$i # I know. No error checking here.
while read filename; do
mv "$filename" ../dir$i # No error checking here either.
done < ../files
done
如果mkdir
或mv
反复失败,则此脚本将成为无限循环。您还必须注意存储临时文件files
的位置以及创建目标目录的位置;否则下一个ls
必须避免识别先前的循环迭代的输出目录。