本脚本将rom下的正在使用的游戏图片和mp4文件找出来放入used_vedio、used_img文件夹下,你可以手动把images或vedios下的文件全部删掉,然后将used_vedio、used_img文件夹下的文件移动回去,这样就达到了清理的目的
# glcleaner.sh
# 1. 将本脚本放入roms/<游戏类>/目录下,比如roms/psx/glcleaner.sh
# 2. 然后命令行执行:cd roms/psx && chmod +x ./glcleaner.sh && ./glcleaner.sh
OLD_IFS=${IFS}
IFS=$'\n'
# 解析gamelist.xml以获取游戏配置信息
GAME_LIST=`cat ./gamelist.xml |\
grep -v '<?xml' |\
grep -v 'gameList>' |\
grep -v '<game.*>' |\
sed -n 'H;${x;s/\n//g;p;}' |\
awk 'BEGIN{FS="</game>"} END{i=1;while(i<=NF){ print $i;i++}}' |\
sed '/^[[:space:]]*$/d' |\
sed '/^$/d'`
# 检测每个游戏的资源配置
for GAME in ${GAME_LIST}
do
G_NAME=
G_PATH=
G_IMG="EMPTY!"
G_VIDEO="EMPTY!"
#echo ${GAME}
if [ -n "$(echo ${GAME} | grep "<name>")" ]; then
G_NAME=${GAME#*<name>}
G_NAME=${G_NAME%</name>*}
#echo ${G_NAME}
fi
if [ -n "$(echo ${GAME} | grep "<path>")" ]; then
G_PATH=${GAME#*<path>}
G_PATH=${G_PATH%</path>*}
#echo ${G_PATH}
fi
if [ -n "$(echo ${GAME} | grep "<image>")" ]; then
G_IMG=${GAME#*<image>}
G_IMG=${G_IMG%</image>*}
#echo ${G_IMG}
fi
if [ -n "$(echo ${GAME} | grep "<video>")" ]; then
G_VIDEO=${GAME#*<video>}
G_VIDEO=${G_VIDEO%</video>*}
#echo ${G_VIDEO}
fi
DIR_VEDIO_USED='used_video'
DIR_IMG_USED='used_img'
mkdir -p "${DIR_VEDIO_USED}"
mkdir -p "${DIR_IMG_USED}"
# 开始验证配置的文件是否存在
echo "------------->"
echo "Verifying: ${G_NAME}"
if [ -f "${G_PATH}" ]; then
if [ -f "${G_IMG}" ]; then
# echo " Image exist:${G_IMG}"
# 移动到别处,方便后续清理没用的
[ -n "$(echo ${G_IMG} | grep "images/")" ] && mv "${G_IMG}" "${DIR_IMG_USED}/"
# 有的图片有可能放到videos目录下
[ -n "$(echo ${G_IMG} | grep "videos/")" ] && mv "${G_IMG}" "${DIR_VEDIO_USED}/"
else
echo " E: Image Not Exist:${G_IMG}"
fi
if [ -f "${G_VIDEO}" ]; then
# echo " Video exist:${G_VIDEO}"
# 移动到别处,方便后续清理没用的
[ -n "$(echo ${G_VIDEO} | grep "videos/")" ] && mv "${G_VIDEO}" "${DIR_VEDIO_USED}/"
# 有的视频有可能放到images目录下
[ -n "$(echo ${G_VIDEO} | grep "images/")" ] && mv "${G_VIDEO}" "${DIR_IMG_USED}/"
else
echo " E: Video Not Exist:${G_VIDEO}"
fi
else
echo " E: ${G_PATH} Not Exist!"
fi
done
echo "========"
echo "Done! Please check dir: ${DIR_VEDIO_USED}, ${DIR_IMG_USED}"
IFS=$OLD_IFS