#脚本#Linux 批量整理(重命名)文件

用法:

rnall.sh [文件名后缀] [文件名头部(可选)]

注意:

 假如文件有8个,则格式为[08],第一个为[01];
 假如文件有88个,则格式为[88],第一个为[01];
 假如文件有888个,则格式为[888],第一个为[001];
 假如文件有8888个,则格式为[8888],第一个为[0001];
 最大支持9999个文件重名命,如果需要更多,自己改吧。
 

用法:

rnall.sh -t [文件名后缀,文件名后缀] -h [文件名头部(可选)] -r [递归模式] -s [显示错误信息]

示例:

将该目录下所有的以jpg和png为后缀的文件,重新排序;

并添加 MoeClub.org 为前缀.

rnall -t jpg,png -h MoeClub.org

提示:

复制到 /usr/local/bin 文件夹中,命名为rnall,并赋予a+x权限;

就可直接调用此命令,方便使用。

你可以参考使用这个命令:

chmod a+x /usr/local/bin/rnall

具体用法请查看这篇文章:

https://moeclub.org/2017/03/24/80/

附上完整代码:

rnall.sh

#!/bin/bash
Type="$1";
Head="${2:-}";
ls -1 *.$Type >/dev/null 2>&1
[ $? -ne '0' ] && echo "Not found *.$Type in this directory! " && exit 1
Num="$(ls -1 *.$Type |wc -l)"
[ $Num -lt '100' ] && NUM=2;
[ $Num -ge '100' ] && [ $Num -lt '1000' ] && NUM=3;
[ $Num -ge '1000' ] && [ $Num -lt '10000' ] && NUM=4;
[ -n "$Head" ] && Head="$Head-"
i=1
for var in `ls -1 *.$Type`
 do
  [ -z "$NUM" ] && echo "Error ! "&& break;
  [ $NUM -eq '2' ] && [ $i -lt '10' ] && mv -f "$var" "$Head[0$i].$Type";
  [ $NUM -eq '2' ] && [ $i -ge '10' ] && mv -f "$var" "$Head[$i].$Type";
  [ $NUM -eq '3' ] && [ $i -lt '10' ] && mv -f "$var" "$Head[00$i].$Type";
  [ $NUM -eq '3' ] && [ $i -ge '10' ] && [ $i -lt '100' ] && mv -f "$var" "$Head[0$i].$Type";
  [ $NUM -eq '3' ] && [ $i -ge '100' ] && [ $i -lt '1000' ] && mv -f "$var" "$Head[$i].$Type";
  [ $NUM -eq '4' ] && [ $i -lt '10' ] && mv -f "$var" "$Head[000$i].$Type";
  [ $NUM -eq '4' ] && [ $i -ge '10' ] && [ $i -lt '100' ] && mv -f "$var" "$Head[00$i].$Type";
  [ $NUM -eq '4' ] && [ $i -ge '100' ] && [ $i -lt '1000' ] && mv -f "$var" "$Head[0$i].$Type";
  [ $NUM -eq '4' ] && [ $i -ge '1000' ] && [ $i -lt '10000' ] && mv -f "$var" "$Head[$i].$Type";
  [ -n "$NUM" ] && i=$[$i+1];
done

作者:Vicer

Last modification:July 17th, 2019 at 05:27 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment