2008年9月15日 星期一

useful shell scripts (smart extract)


M$ 的 DOS command 和 *nixshell 相比,真是小巫見大巫,其語言特性已經接近一個正式的程式言,而且可以輕易的調用其他 *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 也是這樣寫出來的,有興趣可以把它拆解開來研究

沒有留言:

張貼留言