右键图形界面文件批量重命名脚本

sh/bash/dash/ksh/zsh等Shell脚本
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

右键图形界面文件批量重命名脚本

#1

帖子 xiooli » 2008-08-18 14:00

RT
看有人需要此项功能,于是就写了一个.使用 :赋予可执行权限,放~/.gnome2/nautilus-scripts,右键脚本里面就可以看见,选择执行。
如果不满意还可以根据重命名的log恢复原命名。

ps:需要zenity,可以apt安装

代码: 全选

#!/bin/bash

#   coded by xiooli
#        have fun : )

choose() {
	((wid=$(echo $3|wc -c)*6+360))
	choice=$(zenity --list --width=${wid} --height=220 --title "请选择动作"	--column "选项" --column "动作" \
	A "选择执行本脚本的目录($1)" B "输入要重命名文件类型和前缀($2)" C "查看本次欲重命名的清单($3)"\
	D "依据清单执行重命名动作($3)" E "从清单中恢复原来的文件名")
	
	case $choice in
	'A')
		dir=$(zenity --title="选择执行本脚本的目录" --file-selection --directory)
		;;
	'B')
		extpr=$(zenity --entry --title="输入欲重命名文件类型和前缀" --text="请输类型和前缀,以空格分割")
		;;
	'C')
		if [ -e "$log_file" ];then
			zenity --title="重命名清单" --info --text="$(cat $log_file)"
		else
			zenity --warning --text="重命名清单不存在"
		fi
		;;
	'D')
		if [ -e "$log_file" ];then
			cat "$log_file" | while read line;do
				[ -e "${line//->*}" ] && [ ! -e "${line//*->}" ] && \
				mv "${line//->*}" "${line//*->}"
			done
			zenity --info --text="重命名完成"
		else
			zenity --warning --text="重命名清单不存在"
		fi
		execed=1
		;;
	'E')
		recover_log="$(zenity --title="选择执行本脚本的目录" --file-selection)"
		if [ -e "$recover_log" ];then
			cat "$recover_log" | while read line1;do
				[ -e "${line1//*->}" ] && [ ! -e "${line1//->*}" ] && \
				mv "${line1//*->}" "${line1//->*}"
			done
			zenity --info --text="恢复原命名完成"
		else
			zenity --warning --text="重命名清单不存在"
		fi
		;;
	*)
		quit=1
		;;
	esac
}

creat_log_file() {
	if [ "${extpr}" != "${extpr0}" ];then
		extpr0="${extpr}"
		[ -z ${dir} ] && dir="$(pwd)"
		ext=${extpr// *}
		pr=${extpr//* }

		log_file="${dir}/${ext}->${pr}_$(date +%m.%d-%k:%M).log"
		i=0
		for it in ${dir}/*.$ext; do
			echo "$it->${dir}/$pr$i.$ext" >> ${log_file}
			let i=i+1
		done
	fi
}

while [ -z "$extpr" ] || [ -z "$execed" ];do
	creat_log_file
	choose "${dir:-$(pwd)}" "${extpr:-未输入}" "${log_file:-不存在}"
	[ "$quit" ] && exit 1
done
附件
rename_files.tar.gz
(1.07 KiB) 已下载 155 次
上次由 xiooli 在 2008-08-18 16:21,总共编辑 2 次。
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#2

帖子 xiooli » 2008-08-18 14:03

图:
附件
Screenshot-1.png
Screenshot.png
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#3

帖子 xiooli » 2008-08-18 14:31

居然没有人顶? :shock:
头像
sinyadvan
帖子: 724
注册时间: 2008-04-02 15:36
来自: O_O

#4

帖子 sinyadvan » 2008-08-18 14:48

支持,好得很。
^o^ && O_O && ^_^
One World|One Dream|One Piece
愛 ^_^ 這個 美麗的世界O_O

本公司专治各种不服、不爽、谩骂、挑衅。
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

#5

帖子 adagio » 2008-08-18 15:07

支持 :D
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
tttomato
帖子: 85
注册时间: 2008-05-27 12:55

Re: 右键图形界面文件批量重命名脚本

#6

帖子 tttomato » 2008-11-19 22:31

完全不知道怎么用 :em20
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 右键图形界面文件批量重命名脚本

#7

帖子 xiooli » 2008-11-19 22:58

tttomato 写了:完全不知道怎么用 :em20
就是重命名一个目录下同一类文件(以同样后缀结尾的),然后重命名成以一个前缀开始后面接数字的样子。
多用在重命名图片。比如你专门有一个目录下面有一堆jpg结尾的图片但是名字很乱,想给其重命名为比如说以“壁纸”开头,然后在输入框里面就可以这样输入:jpg 壁纸
然后执行之。。。。结果可以看到,如果不满意还可以从log文件恢复原名。

有同名的文件不会被覆盖。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 右键图形界面文件批量重命名脚本

#8

帖子 eexpress » 2008-11-20 9:25

改图片的吧。我都发几个版本了的。
支持log啊。你家伙真狠。估计怕把女同志的名字搞乱了,才建立log的。
● 鸣学
flyfei
帖子: 16
注册时间: 2008-06-20 19:10

Re: 右键图形界面文件批量重命名脚本

#9

帖子 flyfei » 2008-11-20 14:46

:em02 搞定,谢谢楼主。 第一次用脚本,嘿嘿
xblx
帖子: 274
注册时间: 2006-12-18 1:05

Re: 右键图形界面文件批量重命名脚本

#10

帖子 xblx » 2008-12-06 12:16

用ROX的Send to传送脚本,“选择执行本脚本的目录”这里不能直接传到右键所在地址, 只是到家目录。
能不能改进一下。
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 右键图形界面文件批量重命名脚本

#11

帖子 xiooli » 2008-12-06 12:35

xblx 写了:用ROX的Send to传送脚本,“选择执行本脚本的目录”这里不能直接传到右键所在地址, 只是到家目录。
能不能改进一下。
rox?我不会用那个哦 :em03 ,你可以看看在rox下怎么获取当前目录,然后改下吧 :em02
jorien
帖子: 28
注册时间: 2008-04-22 13:52

Re: 右键图形界面文件批量重命名脚本

#12

帖子 jorien » 2009-04-08 23:36

rt
上次由 jorien 在 2010-11-04 14:38,总共编辑 1 次。
头像
xiajiebuhui
帖子: 193
注册时间: 2008-07-17 13:24
联系:

Re: 右键图形界面文件批量重命名脚本

#13

帖子 xiajiebuhui » 2009-08-19 21:13

好用,赞一个 :em11

代码: 全选

如鱼饮水 冷暖自知
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 右键图形界面文件批量重命名脚本

#14

帖子 c\nc » 2009-08-23 16:56

这个地道的脚本党 :em04
我一般都是用 thunar -B ,支持正则、支持音乐标签的。
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: 右键图形界面文件批量重命名脚本

#15

帖子 xzap » 2009-08-24 1:50

这个好像不需要这么复杂吧,需要的时候即兴一行代码算了
比如jpg
i=1;for j in *.jpg;do mv $j xxx_$i.jpg;((i++));done
回复