脚本rename_move.sh
#!/bin/bash
# 读取用户的源路径和目标路径
read -r -p "请输入源路径和目标路径: " srcFolder dstFolder
srcFolder="$(echo "$srcFolder" | sed "s/'//g")"
dstFolder="$(echo "$dstFolder" | sed "s/'//g")"
# 检查目标文件夹是否存在, 不存在则创建
mkdir -p $dstFolder
# 检验当前文件夹下是否有文件
while [ -n "$(ls -p $srcFolder)" ]; do
read -r -p "请输入要修改的源文件名和目标文件名(输入exit则退出): " srcName dstName
# 输入exit执行提前退出
if [[ "$srcName" == "exit" ]]; then
echo "执行退出操作"
break
fi
# 判断目标路径下是否已经有了对应的文件名
if [ -e "$dstFolder/$dstName.png" ]; then
echo -e "\033[31m\n目标文件夹中已存在重名文件,移入操作已取消。\n\033[0m"
else
# 判断输入的源文件是否存在
if [ -e "$srcFolder/$srcName.png" ]; then
mv "$srcFolder/$srcName.png" "$dstFolder/${dstName}.png"
echo "文件移入成功。"
else
echo "\033[33m\n您输入的源文件$srcName.png不存在, 请重试.\n\033[0m"
fi
# 判断二倍图是否存在
if [ -e "$srcFolder/${srcName}@2x.png" ]; then
mkdir -p "$dstFolder/2.0x"
mv "$srcFolder/${srcName}@2x.png" "$dstFolder/2.0x/${dstName}.png"
echo "文件移入2倍图成功。"
fi
# 判断三倍图是否存在
if [ -e "$srcFolder/${srcName}@3x.png" ]; then
mkdir -p "$dstFolder/3.0x"
mv "$srcFolder/${srcName}@3x.png" "$dstFolder/3.0x/${dstName}.png"
echo "文件移入3倍图成功。"
fi
fi
# 判断源路径下是否有文件
if [ -z "$(ls -p $srcFolder)" ]; then
echo "\033[32m================================所有文件处理完毕================================\033[0m"
fi
done
初级使用
1、sh rename_move.sh
;
2、按照提示输入 源路径
目标路径
;
3、输入 原文件名称
目标文件名称
;
4、自动循环执行 或 通过输入 exit
提前退出。
高级使用:添加到全局(针对MacOS)
1、mkdir ~/bin && cp rename_move.sh ~/bin/frm
;
2、echo 'export PATH="$PATH:~/bin"' >> ~/.zshrc
接下来可以在任意路径里,直接通过 sh frm
来调用了。如果还感觉麻烦,可以在~/.zshrc里定义alias frm="sh frm"
, 那么直接frm
就可以了。
网友评论