Flutter:脚本处理多倍图的命名及移入对应目录

2023-08-23  本文已影响0人  春暖花已开
脚本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就可以了。

上一篇下一篇

猜你喜欢

热点阅读