M$ 的 DOS command 和 *nix 的 shell 相比,真是小巫見大巫,其語言特性已經接近一個正式的程式言,而且可以輕易的調用其他 *nix 工具,配合 pipe 可謂神乎奇技,這是其中一個:自動判斷檔案內容決定解壓縮是否要放在一資料夾內 ##ReadMore##
#!/bin/sh
usage(){
echo "$0 *.(zip|7z|rar|001)"
}
if [ -z "$1" ] ; then
usage
else
case "$1" in
*.[Rr][Aa][Rr] )
cnt=`unrar vb "$1" | sed 'sx/.*xxg' | sort | uniq | wc -l `
if [ $cnt -le 1 ] ; then
unrar x "$1"
else
dir=`echo "$1" | sed 'sx\.001$xxg' | sed 'sx\(.*\)\..*x\1xg'`
mkdir "$dir"
unrar x "$1" "$dir/"
fi
;;
*.7[Zz] | *.[Zz][Ii][Pp] | *.7[Zz].001 )
cnt=`7z l -slt "$1" | grep '^Path = ' | sed 'sx^Path = xxg' | sort | uniq | wc -l`
if [ $cnt -le 1 ] ; then
7z x "$1"
else
dir=`echo "$1" | sed 'sx\.001$xxg' | sed 'sx\(.*\)\..*x\1xg'`
7z x "-o$dir" "$1"
fi
;;
*)
usage
esac
fi
複製、存檔、加執行屬性、丟至 /usr/loca/bin or /usr/bin/ 就可以懶人解壓了:
[user]$ extract file.rar
[user]$ extract file.7z
[user]$ extract file.zip
[user]$ extract file.part1.rar
方便又好記。(>ω<)♪♪而這次就不需要使用 kde UI 介面,完全文字指令,並且不會有效率問題,只是有時可能要對加密檔打兩次密碼。
- 其實這個 wireless script tool 也是這樣寫出來的,有興趣可以把它拆解開來研究
沒有留言:
張貼留言