看有人需要此项功能,于是就写了一个.使用 :赋予可执行权限,放~/.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