2011年5月31日 星期二

Stop on Error

shell script default 是在有 Error 時也不會停下來。
如果要在有任何 error 時停下來,可以用
set -e
如果之後又不需要了 (有 error 也不用停),可以再用
set +e



ref : http://www.linuxjournal.com/node/1005733

2011年5月6日 星期五

sed , @ , /

sed 的 command 和 option 用了 '/' 作分別符號,
所以當要 match 的 char 有 '/' 時?

就用 @ 來代替。

當用 @ 代替時, '/' 就恢復一般字元使用。

這裡 :
http://nano-chicken.blogspot.com/2010/01/linux-modules11-sysfs-and-device-node.html
有使用的範例。

2011年5月3日 星期二

find - exclude some folder

是用指定 "path 中不包含某些字串" 完成的:
find . -type f -not -path "./.repo*"
-- 不要找./.repo 下的
如果有一堆,就 一直 -not -path ..



ref: http://blog.tcmacdonald.com/content/exclude-directories-bash-find

也可以用 -prune find . -type d -name Documentation -prune -o -type f -name '*.c' -- 修剪掉所有 Documentation 目錄

多個可以用: find . -type d \( -name Documentation -o -name tools -o -name scripts \) -prune -o -type f -name '*.c' -- 修剪掉 Documentation, tools 和 scripts 三個目錄。
有關 -prune

用 man find 來看, -prune 放在 -path 後面,代表 -path 'XXX' 的這個path 會被 exclude。
--- 但是 -prune 後面好像一定要加 -o
而且要放在前面...