ubuntu16.04(其他版本也可)批量修改图片名---shell编程,


  在windows系统中有很多好用的图片排序软件,可以批量的进行图片排序。然而在ubuntu中,图片排序只能自己写一个shell脚本,编写shell代码。下面是具体的操作步骤。
(1)、新建一个rename.sh文件(这个名字可以随便起但是后缀必须是.sh,而且一般放在与图片集所在的目录下),之后在文件的内部写入如下代码(代码中已经标注每条代码的含义):

#!test-folder/bash  告诉这个文件是shell脚本
#mkdir images(你可以像这样的建立一个文件夹 之后用cp指令将修改后的图片放到这个文件夹中)     
#输出本文件的说明                
echo "this script is to rename picture"                         
                                                          
#设置图片开始的顺序变量 (我想让图片的名字从70884开始排序)                                 
i=70884 
#names是一个准备更改的图片集的索引(可以设置成任意值),./name49/* 表示names49文件夹下的所有图片(可以改为自己的图片集的位置)  
for names in ./names49/* 
do 
#输出图片名字names是一个变量 $names 表示引用这个变量的内容
  echo $names 
#变量赋值,news是一个新的变量                            
  news=$i 
  echo "$news" 
#更改(如果将mv 变为cp的话就是将更名字后的图片复制到指定的目录下)当前的图片 到指定的目录下,并且命名为自己想要的名字$news.jpg 
  mv $names ./names49/$news.jpg 
  let i=i+1 
 done 

(2)、整体代码以及执行命令如下(方便查看对照更改):
整体代码:

#!test-folder/bash           
    echo "this script is to rename picture"  
    i=70884 
    for names in ./names49/* 
    do 
      echo $names                            
      news=$i 
      echo "$news" 
      mv $names ./names49/$news.jpg 
      let i=i+1 
     done 

在当前目录中打开终端,执行命令:

sudo sh ./rename.sh

注意:在运行该脚本时可能会提示 let:not found 因为上面代码中出现了let这个指令。而sh指令默认是dash 而dash不支持let命令,所以要显示的用bash 这个命令
更改为:

sudo bash rename.sh

如果仍然想要用sudo sh ./rename.sh 那么必须要修改/bin/sh 指向bash.可以执行下面的命令:

sudo dpkg-reconfigure dash 

会出现一个对话框:

从图片上的文字可以看出,使用dash可以整体提升系统的性能,所以最好不修改。如果你修改后,当然也可以用与上面同样的命令修改回来。(对于部分关键字如 let,bash支持,而sh和dash并不支持,对于部分关键字则选择使用bash。)

相关内容

    暂无相关文章