下面来总结一下 对当前路径下的所有的文档重命名而且想排序的话
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
#删除当前路径下所有文件名字中的空格,以"-"代替
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:看一下当前路径下的文件的名字
可以清楚的看到以上文件的名字中包含的空格,统统被变成了“-”替代了
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
#修改当前路径下的文件的名字,前面给其加上一个序号
declare -i num=0;
for name in `ls`
do
mv -f $name `echo $num"_"$name`;
num=num+1;
done
当执行完重命名脚本后,文件的名字如下
可能有人会纳闷,为什么要先给文件中的名字去掉空格,然后在按照序号给文件修改名字呢?现在假设先执行auto_rename.sh,请看下图
系统提示“没有xxx文件/文件夹”
为什么会出现上面的提示呢????
原因很简单,auto_rename.sh不能对 名字当中包含空格的文件进行重命名,大家是不是看到了这样的结果啊,其实为了解决这个问题,我才在执行此脚本之前先运营另一个脚本,把 名字中的空格给去掉/或者变成飞空格,即可
转载于:https://blog.51cto.com/dong4716138/1150692