文件夹下面的文件太多,无法直接用 rename aa bb *.jpg
执行就会提醒:-bash: /usr/bin/rename: Argument list too long
百度找到的方法
for i in `ls *.jpg`
do
rename "aa" "bb" $i
done
find . -name *.jpg -exec rename aa bb {} +
出错:-bash: /bin/find: Argument list too long
上面方法也都不能用,请教懂的同学指点一下,如何快速批量替换文件夹下面的文件名,大概有几十万个文件吧。
ls *.jpg
会列举出所有的 .jpg 文件。find . -name *.jpg
因为没有用单引号包围 *.jpg,因此被 shell 自动扩展成所有的 .jpg 文件。注意,
find xxx -exec xxx {} +
将会对多个文件执行一次操作,而find xxx -exec xxx ;
是逐个文件操作。详细用法请查man find
。参考