按顺序查找多个文件,复制和重命名

时间:2014-07-15 19:34:31

标签: bash

我在许多子目录中有几十万个文件。我试图使用正则表达式提取所有相关的图像文件:

find -E . -regex '.+\.ca/.+(\.gif|\.jpg|\.tif|\.jpeg|\.tiff|\.png|\.jp2|\.j2k|\.bmp|\.pict|\.wmf|\.emf|\.ico|\.xbm)'

找到文件。但是,我想将它们移到newdir并将其命名为:

1.png  
2.jpg  
3.ico  
4.pict  
5.png  

等等。我还没有找到一种方法(a)保留各种扩展; (b)在它们进来时重命名它们。许多文件将是重复的,我将保留它。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:4)

i=1
find ... | while read filename; do
    newname=$i.${filename##*.}
    mv "$filename" newdir/"$newname"
    i=$((i+1))
done