我该如何将拥有数千张图片的文件夹分成多个子文件夹?

21

我有一个包含大约5000张图片的目录,我想要将其分成50个文件夹(需要创建)每个文件夹包含100张图片。

是否有一种使用终端来完成此操作的方法?

我正在运行OS X。

2个回答

46

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


4

awk 单行命令可以完成这个任务。考虑以下 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
}'

谢谢,但我遇到了错误:find: -name: 需要额外的参数。 - Todd Jenk
感谢您继续提供帮助,但似乎它没有选择正确的名称。我看到这个错误 mv: rename ./2012-09-10 to sub_2/2012-09-10: No such file or directory *** 文件名例如IMG_2789.JPG - Todd Jenk
你是否拥有所有扩展名为.JPG的图片? - anubhava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接