代码: 全选
13:42:27-exp~/应用/脚本$● cat import-截图
#!/bin/bash
#import -window root ${FNAME}.${EXT}
#apt-get install imagemagick
# parameter can be : w.id w.class
NOW=`date '+%Y-%m-%d-%H-%M-%S'`
if [ -z $2 ]; then
FNAME=screenshot-${NOW}
else
FNAME="[$2]-${NOW}"
fi
EXT=png
SCRDIR=${HOME}/下载/
if [ ! -d "${SCRDIR}" ]; then
mkdir -p "${SCRDIR}"
fi
# 延时4秒
# sleep 4
#import -window root "$HOME/Desktop/${FNAME}.${EXT}"
if [ -z $1 ]; then
cmd="import ${SCRDIR}${FNAME}.${EXT}"
else
cmd="import -window $1 ${SCRDIR}${FNAME}.${EXT}"
fi
#echo $cmd>${SCRDIR}/w.info
eval $cmd
代码: 全选
13:42:40-exp~/应用/脚本$● cat man-zh_CN转换到utf8.bash
#!/bin/bash
cd /usr/share/man/zh_CN/
for k in *
do
cd $k
for i in *.gz
do
# j=`echo $i|awk -F'.gz' '{print $1}'` # 不知道有什么好方法
j=`echo ${i%\.gz}`
gunzip $i
iconv -f gb18030 -t utf8 $j >tmp
mv tmp $j
gzip $j
done
cd ..
done
代码: 全选
13:43:19-exp~/应用/脚本$● cat jpg改目录名.bash
#!/bin/bash
#整理当前目录下的jpg图片名字,按照目录名字排序。
dir=`pwd`
#[ $1 ] && dir=`dirname $1` && cd $dir;
dir=${dir##\/*\/}
#:>~/tmp
#echo $dir --- >>~/tmp
#pwd>>~/tmp
#exit 0
num=0
for i in *.jpg
do
#符合规则的文件不需要修改
if [ `expr match "$i" "${dir}-[0-9]*.jpg$"` != 0 ]; then
tmp=${i#"$dir"-}
tmp=${tmp%".jpg"}
# echo ${tmp} ----------------------
if [ "$tmp" -le "$num" ]; then
echo $i 符合规则,不修改。当前排序已到 $num。
continue
fi
fi
result="$dir"-$num.jpg
#防止覆盖已有文件
while [ -e "$result" ]
do
((num++))
result="$dir"-$num.jpg
done
# i=`echo $i | sed 's/\ /\\\ /g'`
# result=`echo $result | sed 's/\ /\\\ /g'`
# | sed 's/\(/\\\(/g' | sed 's/\)/\\\)/g'
echo $i '->' $result
mv "$i" "$result"
((num++))
done
代码: 全选
13:43:26-exp~/应用/脚本$● cat 移动所选文件到目录.bash
#!/bin/bash
#移动所选文件到:某个目录(支持列表)。
#echo $* > ~/tmp
#echo `pwd` >> ~/tmp
#exit
#------------ 产生自动目录 ----------
#rm ~/tmp
dir=`dirname $1`
dir=`pwd`
current_dir=${dir##\/*\/};num=0
auto_dir=./${current_dir}-自动-${num}
#${dir}
while [ -d ${auto_dir} ]
do
((num ++))
if ((num>100)); then exit; fi
auto_dir=./${current_dir}-自动-${num}
done
#------------ 选择窗口 -------------
item=`zenity --width=600 --height=300 --title='移动所选文件到:' --list --text='将移动到以下目录,请选择' --column='目录列表' --column='说明' ${auto_dir} 自动排序生成的目录 $HOME 家目录 ${HOME}/媒体 媒体目录 ${HOME}/下载 下载目录 ${HOME}/文档 文档目录 other... 新建或者打开其他目录`
#------------ 选择其他目录 -------------
if [ ${item} == "other..." ]; then
item=`zenity --file-selection --directory --title=选择其他目录`
fi
[ -z ${item} ] && exit 1;
if [ ! -d ${item} ]; then
eval mkdir "'"${item}"'"
fi
while [ $# -gt 0 ]; do
eval mv "'"$1"'" "'"${item}\/"'"
shift
done
exit 0
代码: 全选
13:44:02-exp~/应用/脚本$● cat z_批量改名v3
#!/bin/bash
dir=${1%\/*}
cd $dir
if(("$#"<1));then
zenity --info --title="用法介绍" --text=" \
在文件管理器中,选择需要修改的文件,使用右键菜单中“脚本” \
-“批量改名”。在提示窗口输入如“Zh_%.jpg”格式的信息。\
参数中用%号表示递增的序号。 \
智能处理了原文件名符合修改后条件的情况,直接不处理。 \
显示为“不需要修改”。 \
最关键的一个地方要感谢x.f的帮助才完成。 \
已经修改成可以处理空格文件。 \
2005年10月10日 eexpress 第3版\
"
exit 1
fi
tmp=""
until [ $tmp != "" ]; do
new_format=`zenity --title="输入新格式" --entry --text="将修改"'$#'"个文件,请输入新文件名格式。在提示窗口输入如“Zh__%.jpg”格式的信息。参数中用%号表示递增的序号。"`
if [ "$new_format" = "" ]; then exit 1; fi #no input or cancel pressed
tmp=`echo $new_format|grep "%"`
if [ "$tmp" = "" ]; then
zenity --info --title="输入错误" --text="格式中需要一个%号表示递增的文件序号。"
fi
done
:>tmpfile
number=0
already_exist=""
#while [ "$#" -lt 0 ] #至少还有1个参数
while (("$#">0)) #至少还有1个参数
do
if [ ! -f "$1" ]; then
echo "指定文件 $1 不是文件或者不存在。" >> tmpfile
shift
continue
fi
echo -n "$1 -> " >> tmpfile
tmp=`echo $already_exist|grep "$1"`
if [ "$tmp" != "" ]; then
echo "不需要修改" >> tmpfile
shift
continue
fi
J=`echo $new_format | sed s/%/$number/`
while [ -e "$J" ]
do
already_exist="$already_exist $J"
((number++))
J=`echo $new_format | sed s/%/$number/`
done
echo $J >> tmpfile
mv "${1##\/*\/}" "$J"
((number++))
shift
done
zenity --info --title="修改完成" --text="`cat tmpfile`"
rm tmpfile
exit 0
#end
代码: 全选
13:44:44-exp~/应用/脚本$● cat mv_jpg_to_dir.bash
#!/bin/bash
[ -z $1 ] && exit 1;
[ ! -d $1 ] && mkdir "$1"
mv *.jpg *.jpeg "$1"
代码: 全选
13:44:51-exp~/应用/脚本$● cat switch-开关触摸板.bash
#!/bin/bash
ts=`synclient -l|grep TouchpadOff`
ts=${ts#*= }
if(("$ts" == 0))
then
synclient TouchpadOff=1
else
synclient TouchpadOff=0
fi
代码: 全选
13:45:11-exp~/应用/脚本$● cat swap-交换鼠标按键.bash
#!/bin/bash
but=`xmodmap -pp|head -n 1|cut -d ' ' -f 3`
((but++))
ret=""
ret=`xmodmap -pp|grep "3.*1"`
if [ -z "$ret" ]
then
prefix="xmodmap -e \"pointer = 3 2 1 4 5 6 7 8 9"
else
prefix="xmodmap -e \"pointer = 1 2 3 4 5 6 7 8 9"
fi
cmd=${prefix%${but}*}'"'
eval $cmd
代码: 全选
13:45:33-exp~/应用/脚本$● cat shadow-pic.bash
#!/bin/bash
#产生阴影图片效果。
#for i in S*.png; do ./shadow-pic.bash $i; done;
# 取得图片宽度
w=`identify """$*"""`; w=${w#*PNG\ }; w=${w%%\ ?*};
#convert """$*""" -shadow 80x5+4+4 -resize 48 s-"""$*"""
# 添加阴影
convert """$*""" -shadow 80x5+5%+5% s-"""$*"""
#convert """$*""" -channel RGBA -gaussian 0x6 s-"""$*"""
# 叠加原图
composite -compose over """$*""" s-"""$*""" s-"""$*"""
# 恢复图片尺寸
convert s-"""$*""" -resize $w s-"""$*"""
代码: 全选
13:45:38-exp~/应用/脚本$● cat gnome-screenshot-截图-延时5秒
#!/bin/bash
gnome-screenshot --delay=5
代码: 全选
13:46:14-exp~/应用/脚本$● cat iconv-转换gb2312到utf8.bash
#!/bin/sh
for i in *
do
iconv -f gb2312 -t utf8 $i >tmp
mv tmp $i
done
代码: 全选
13:46:27-exp~/应用/脚本$● cat tar.gz-选定文件按照目录名打包v4
#!/bin/bash
dir=${1%\/*}
cd $dir
NOW=`date '+%Y-%m-%d %H-%M-%S'`
#取得压缩包的文件名。只有一个文件时,直接使用文件名。多个文件,取目录名
[ $# -eq 1 ] && dir=$1;
#取最后一段作文件名前缀
dir=${dir##\/*\/}
tar_gz_name="'[${dir}](${NOW}).tar.gz'"
#处理空格和特殊符号。
cmd="tar -zcPvf $tar_gz_name"
for i in $*
do
cmd=${cmd}" '${i}'"
done
#执行
#rm ~/tmp; echo $cmd>>~/tmp
eval $cmd
代码: 全选
13:47:00-exp~/应用/脚本$● cat resize-pic.bash
#!/bin/bash
# for i in *.png; do ./resize-pic.bash $i; done;
# default size
def=24
# parameter 2 is redefine size
if [ -z $2 ]; then
ss=${def}
else
ss=$2
fi
# 产生固定尺寸(缺省24点宽度)的图片。
convert """$1""" -scale ${ss} """r-${ss}-$1"""
代码: 全选
13:47:22-exp~/应用/脚本$● cat cmd-常用命令点击.bash
#!/bin/bash
# 需要把执行和配置文件都 ln -s 到同一个路径。
path=`readlink "$0"`
path=`dirname "$path"`
conf="$path/commands.ini"
[ ! -f $conf ] && echo conf-error && exit 0;
cmd="zenity --width=400 --height=400 --title='常用命令' --list --column='点击执行'"
cmd=${cmd}`awk '/^$/ { next } { printf(" \"%s\"", $0) }' $conf`
#for i in `sed -e 's/$/"/' -e 's/^/"/' $conf`
#do
#cmd="${cmd} $i"
#done
item=`eval $cmd`
eval ${item}