Linux下批量重命名

需要命名一些文件,在文件名的前缀加上序列,这些文件的文件包空格、中文
思路如下:
重命名使用mv命令(不讨论其它重命名命令),需要提供文件名,通过ls命令可以获得文件名,将ls命令得到的文件名分割为数组,在遍历中进行重命名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env bash
#这样只有一条path
p='/home/lee/Templates/'
path=$(ls -Art $p)
# echo $path
IFS=$'\n'
#只有加单引号且使用$才是换行符
# https://blog.csdn.net/apache0554/article/details/47006609
array=($path)
i=0
while [ $i -lt ${#array[@]} ]
do
echo ${array[$i]}
echo 's'
var=$(printf "%03d" $i)
# echo $var
mv "${p}${array[$i]}" "${p}${var}${array[$i]}"
let i++
done