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

2018-01-26 19:18:47来源:cnblogs.com作者:灰色的石头人点击

分享

  在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。)

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台