需要使用批处理脚本将每5000个文件移动到新文件夹中

问题描述 投票:0回答:1

我有一个包含> 10000000个文件的文件夹,需要将它们移动到每个5000个单独的文件夹中。使用批处理脚本,如何将它们移动到单个文件夹?

macos shell terminal
1个回答
0
投票
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

如果mkdirmv反复失败,则此脚本将成为无限循环。您还必须注意存储临时文件files的位置以及创建目标目录的位置;否则下一个ls必须避免识别先前的循环迭代的输出目录。

© www.soinside.com 2019 - 2024. All rights reserved.