#!/bin/bash
dir=$1
changeEncode()
{
for fileName in `ls $1`
do
if [ -d $1/${fileName} ]; then
echo -e "\033[31mentry $1/${fileName}\033[0m"
changeEncode $1/${fileName} #递归调用,继续把子目录作为参数来调用函数
else
file $1/${fileName} | xargs | grep -n "ISO-8859"
if [ $? -eq 0 ]; then
iconv -f GB2312 -t UTF-8 $1/${fileName} -o $1/${fileName}
fi
fi
done
}
changeEncode ${dir}
运行:sh iconv.sh 文件夹