我在许多子目录中有几十万个文件。我试图使用正则表达式提取所有相关的图像文件:
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)在它们进来时重命名它们。许多文件将是重复的,我将保留它。非常感谢你的帮助。
答案 0 :(得分:4)
i=1
find ... | while read filename; do
newname=$i.${filename##*.}
mv "$filename" newdir/"$newname"
i=$((i+1))
done