#!/bin/bash
###################################################
#@author andrew
#@function 按照顺序重命名
#
###################################################
function changeName()
{
##碰到有空格的文件名就无法处理,要先删除空格
ls -1 *.png | xargs -I FL rename " " "" FL
FILES=$(find . -maxdepth 1 -iname "*.png" )
COUNT=0
if [ $# == 2 ]
then
for FL in ${FILES[*]}
do
COUNT=$((COUNT+1))
mv "${FL}" "fish"${1}_${COUNT}${2}".png"
echo "${FL}" "fish"${1}_${COUNT}${2}".png"
done
else
echo "have no root path"
fi
echo "param len $#"
}
OLD_PATH=$(pwd)
ALL_FILES=$(find . -maxdepth 1 -type d)
for PARENT in ${ALL_FILES[*]}
do
P_PATH=${OLD_PATH}/${PARENT}
if [ "${PARENT}" != "." ]
then
###更改根目录下文件名
cd ${P_PATH}
changeName "_a" "_"$(basename ${PARENT})
###更改各个子动画文件名
FOLDERS=$(find . -maxdepth 1 -type d)
for ANIM in ${FOLDERS}
do
if [ "${ANIM}" != "." ]
then
cd ${P_PATH}/${ANIM}
changeName "_"$(basename ${ANIM}) "_"$(basename ${PARENT})
mv *.png ${P_PATH}
cd ${P_PATH}
rm -rf ${ANIM}
cd ${OLD_PATH}
fi
done
fi
done
cygwin种标准的批量改名命令是rename:
rename 要更改的内容 改后的内容 要更改的文件*.xxx