下面来总结一下 对当前路径下的所有的文档重命名而且想排序的话
1:执行 delete_space.sh
#!/bin/bash
#删除当前路径下所有文件名字中的空格,以"-"代替
find . -type f -name "* *" -print |
while read name;
do
     echo "-------1----------";
     na=$(echo $name | tr ' ' '_')
     if [[ $name != $na ]]; then
     #echo $na;
     mv "$name" $na;
     fi
done

A:看一下当前路径下的文件的名字

ubuntu下批量修改文件名字_第1张图片

 
B:执行此脚本后

ubuntu下批量修改文件名字_第2张图片

 
可以清楚的看到以上文件的名字中包含的空格,统统被变成了“-”替代了

 

 

 
2:执行auto_rename.sh,对当前路径下的所有的文件重新命名
#!/bin/bash
#修改当前路径下的文件的名字,前面给其加上一个序号
declare -i num=0;
for name in `ls`
do
     mv -f $name `echo $num"_"$name`;
     num=num+1;
done
当执行完重命名脚本后,文件的名字如下

ubuntu下批量修改文件名字_第3张图片

 

 

 
可能有人会纳闷,为什么要先给文件中的名字去掉空格,然后在按照序号给文件修改名字呢?现在假设先执行auto_rename.sh,请看下图

ubuntu下批量修改文件名字_第4张图片 

ubuntu下批量修改文件名字_第5张图片

 
系统提示“没有xxx文件/文件夹”

 
为什么会出现上面的提示呢????
原因很简单,auto_rename.sh不能对 名字当中包含空格的文件进行重命名,大家是不是看到了这样的结果啊,其实为了解决这个问题,我才在执行此脚本之前先运营另一个脚本,把 名字中的空格给去掉/或者变成飞空格,即可