脚本rename_move.sh
#!/bin/bash
srcFolder=$(echo $PWD)
dstFolder=$(echo $PWD)
# 检验当前文件夹下是否有文件
while [ -n "$(find "$srcFolder" -maxdepth 1 -type f ! -name .DS_Store)" ]; do
IFS=';' read -r -p "请输入要修改的源文件名(输入q则退出): " srcName other
# 输入q执行提前退出
if [[ "$srcName" == "q" ]]; then
echo "执行退出操作"
break
fi
read -r -p "请输入要修改的目标文件名(输入q则退出): " dstName
# 输入exit执行提前退出
if [[ "$dstName" == "exit" ]]; then
echo "执行退出操作"
break
fi
# 判断目标路径下是否已经有了对应的文件名
if [ -e "$dstFolder/$dstName.png" ]; then
echo -e "\033[31m\n目标文件夹中已存在重名文件,移入操作已取消。\n\033[0m"
else
src1Path=""$srcFolder"/"$srcName""$other".png"
if [ -e "$src1Path" ]; then
mkdir -p "$dstFolder/1.0x"
mv "$src1Path" "$dstFolder/1.0x/${dstName}.png"
echo "文件移入成功。"
else
echo "\033[33m\n您输入的源文件${src1Path}不存在, 请重试.\n\033[0m"
fi
# 判断二倍图是否存在
if [ -e "$srcFolder/${srcName}@2x$other.png" ]; then
mkdir -p "$dstFolder/2.0x"
mv "$srcFolder/${srcName}@2x$other.png" "$dstFolder/2.0x/${dstName}.png"
echo "文件移入2倍图成功。"
fi
# 判断三倍图是否存在
if [ -e "$srcFolder/${srcName}@3x$other.png" ]; then
mkdir -p "$dstFolder/3.0x"
mv "$srcFolder/${srcName}@3x$other.png" "$dstFolder/3.0x/${dstName}.png"
echo "文件移入3倍图成功。"
fi
fi
# 判断源路径下是否有文件
if [ -z "$(find "$srcFolder" -maxdepth 1 -type f ! -name .DS_Store)" ]; then
echo "\033[32m================================所有文件处理完毕================================\033[0m"
fi
done
由于直接将图片放置到工程对应的文件夹下,vscode感知不到,故先在外部生成, 之后手动拖进vscode。
初级使用
1、sh rename_move.sh
;
2、分别输入 源文件名称
目标文件名称
;(对于 组 274(1).png
组 274@2x(1).png
这种非常规命名的多倍图,源文件名需要输入: 组 274;(1)
)。
3、自动循环执行 或 通过输入 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
就可以了。