Linux环境下,如何将某个文件夹下的文件批量重命名

2025-01-20 00:11:57
推荐回答(2个)
回答1:

看下面我写的脚本能满足你需求么
[root@S3 test]# touch 234dsfasd.jpg 234dsfdsaf.jpg 234dsfadsf.jpg 23asdfads.jpg
[root@S3 test]# pwd
/root/test
[root@S3 test]# ll
总用量 8
-rw-r--r-- 1 root root 0 7月 28 11:51 234dsfadsf.jpg
-rw-r--r-- 1 root root 0 7月 28 11:51 234dsfasd.jpg
-rw-r--r-- 1 root root 0 7月 28 11:51 234dsfdsaf.jpg
-rw-r--r-- 1 root root 0 7月 28 11:51 23asdfads.jpg
-rwxr-xr-x 1 root root 259 7月 28 11:50 test.sh
-rw-r--r-- 1 root root 182 7月 28 11:50 test.txt
[root@S3 test]# ./test.sh
[root@S3 test]# ll
总用量 8
-rw-r--r-- 1 root root 0 7月 28 11:51 654194.jpg
-rw-r--r-- 1 root root 0 7月 28 11:51 654195.jpg
-rw-r--r-- 1 root root 0 7月 28 11:51 654196.jpg
-rw-r--r-- 1 root root 0 7月 28 11:51 654197.jpg
-rwxr-xr-x 1 root root 259 7月 28 11:50 test.sh
-rw-r--r-- 1 root root 254 7月 28 11:51 test.txt
备注:
test.sh内容如下:
#!/bin/bash

#ls |grep jpg > test.txt

/bin/ls -l -i |grep jpg > test.txt

sed -i 's/ /|/g' test.txt

for i in `cat test.txt`

do
# echo $i

id=`echo $i | awk -F "|" '{print $1}'`

filename=`echo $i | awk -F "|" '{print $NF}'`

mv $filename $id.jpg
done

回答2:

文件夹批量重命名