Linux 对文件名进行批量修改

来源:互联网 发布:php分页加跳转页面 编辑:程序博客网 时间:2024/05/21 15:41

背景:

         之前运行的系统涉及图片上传,其中图片会被处理,包含一张缩略图。与原图的区别是 small_图片名.扩展名【jpg,jpeg,png......】

问题:

         由于程序后台原因,生成缩略图是名称不小心写错了。把 small 写成了 samll 。后期已改正过来。但是Linux 图片服务器缩略图部分名称还是 samll 开头。总计2101 张

-sh-4.1$find /mnt/wit/pic_service/images/goods_pic_dir -name 'samll*' -type f | xargs-I{} ls {} | wc -l

2101

         造成结果就是有部分图片不能访问。

处理:

         对Linux 图片服务器的缩略图图片进行重命名或者重新复制一张正确命名的图片。

 

过程:

         由于实际环境已经处理成功,所以自己模拟了一个环境。过程都是一样的

1、数据模拟

[oldboy@mode-6work]$ pwd

/home/oldboy/work

[oldboy@mode-6work]$ ll

total12

-rwxrw-r--1 oldboy oldboy  171 Dec  2 15:32 file-rename.sh

drwxrwxr-x2 oldboy oldboy 4096 Dec  2 16:14 pic

drwxrwxr-x2 oldboy oldboy 4096 Dec  2 16:13 pic2

[oldboy@mode-6work]$ ll pic

total0

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:411441078562454.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:411441078562455.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:411441078562456.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:37 samll_1441078562455.png#需要修改

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:37 samll_1441078562456.png#需要修改

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:37 small_1441078562454.png#正常数据

[oldboy@mode-6work]$ ll pic2

total0

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:131441078562450.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:131441078562451.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:131441078562452.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:13 samll_1441078562450.png#需要修改

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:13 samll_1441078562451.png#需要修改

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:13 samll_1441078562452.png#需要修改

 

 

 

2、查找需要修改的数据

         注意查找的目录路径非常重要,做到:1、尽量不查找多余的目录;2、所有要查找的目录必须查完。

         这样才能做到数据精准

[oldboy@mode-6work]$ ll

total 12

-rwxrw-r--1 oldboy oldboy  171 Dec  2 15:32 file-rename.sh

drwxrwxr-x2 oldboy oldboy 4096 Dec  2 16:14 pic

drwxrwxr-x2 oldboy oldboy 4096 Dec  2 16:13 pic2

[oldboy@mode-6work]$ find ./-name 'samll*' -type f

    #其中./ 等价于  /home/oldboy/work/

./pic/samll_1441078562455.png

./pic/samll_1441078562456.png

./pic2/samll_1441078562450.png

./pic2/samll_1441078562452.png

./pic2/samll_1441078562451.png

 

3、shell 脚本

[oldboy@mode-6work]$ vim file-rename.sh

#!/bin/sh

for file in `find /home/oldboy/work/ -name 'samll*' -type f | xargs -I{} ls {}`

do

# 特别注意查找的路径,请根据实际情况进行修改

#  echo $file  # 注释  用于查看 查找数据是否正确

  /bin/cp -a $file `echo $file | sed 's#samll#small#g'`   # 也可使用 /bin/mv

done

 

         修改文件权限,这样才能执行shell脚本

[oldboy@mode-6work]$ ll

total12

-rw-rw-r-- 1 oldboyoldboy  168 Dec  2 16:26 file-rename.sh

drwxrwxr-x2 oldboy oldboy 4096 Dec  2 16:14 pic

drwxrwxr-x2 oldboy oldboy 4096 Dec  2 16:13 pic2

[oldboy@mode-6work]$ chmod 764 file-rename.sh

[oldboy@mode-6work]$ ll

total12

-rwxrw-r-- 1 oldboy oldboy  168 Dec  2 16:26 file-rename.sh

drwxrwxr-x2 oldboy oldboy 4096 Dec  2 16:14 pic

drwxrwxr-x2 oldboy oldboy 4096 Dec  2 16:13 pic2

 

4、结果

[oldboy@mode-6work]$ ./file-rename.sh  #脚本执行

[oldboy@mode-6work]$ ll pic

total0

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:411441078562454.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:411441078562455.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:411441078562456.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:37samll_1441078562455.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:37samll_1441078562456.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 14:37small_1441078562454.png#之前就正确的

-rw-rw-r-- 1 oldboy oldboy 0 Dec  2 14:37 small_1441078562455.png

-rw-rw-r-- 1 oldboy oldboy 0 Dec  2 14:37 small_1441078562456.png

[oldboy@mode-6work]$ ll pic2

total0

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:131441078562450.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:131441078562451.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:13 1441078562452.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:13samll_1441078562450.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:13samll_1441078562451.png

-rw-rw-r--1 oldboy oldboy 0 Dec  2 16:13samll_1441078562452.png

-rw-rw-r-- 1 oldboy oldboy 0 Dec  2 16:13 small_1441078562450.png

-rw-rw-r-- 1 oldboy oldboy 0 Dec  2 16:13 small_1441078562451.png

-rw-rw-r-- 1 oldboy oldboy 0 Dec  2 16:13 small_1441078562452.png

 

 

结果就是这样。

Linux 对文件名进行批量修改  成功



2 0
原创粉丝点击