如何将包含数千个图像的文件夹拆分为多个子文件夹?

时间:2013-07-16 06:05:55

标签: macos bash command-line

我有一个包含约5000张图像的目录,我想将其拆分/移动到50个文件夹(需要创建),每个文件夹包含100张图像。

有没有办法用终端做到这一点?

我正在运行OS X.

2 个答案:

答案 0 :(得分:32)

i=0; for f in *; do d=dir_$(printf %03d $((i/100+1))); mkdir -p $d; mv "$f" $d; let i++; done

答案 1 :(得分:3)

awk one-liner可以做到这一点。考虑一下这个awk命令:

find . -name "*.JPG" | awk '!(++cnt%100) {"mkdir sub_" ++d|getline}'

在包含5000张图片的文件夹中运行它。这将创建50个名称为sub_1,sub_2 ... sub_50。

的文件夹

还要将文件移动到这些新创建的目录中:

find . -type f | awk '{
   a[++cnt] = $0
}
cnt==100 {
   subd = "sub_" ++d;
   system("mkdir " subd);
   for (f in a)
      system("mv " a[f] " " subd);
   cnt=0
}'