トップページ 更新履歴

Shell

findコマンドでパターンで特定のパスを除く

あるSVN管理されているディレクトリにおいて.svn内のファイルを拾わないようにする場合

find /PATH/TO/FILES -name '*.conf' ! -path '*/.svn/*'

curlでPOST

1024バイトのデータを送信する

curl -d "$(m=1024;d=;c=1;while;do;d+='x';((m<=c))&&break||c=$(($c+1));done;echo $d)" -si http://www.example.com/

三項演算子

数値

$ n=2;echo $((0<n?n:5))   
2
$ n=0;echo $((0<n?n:5))
5

この場合、文字列を返せない。

文字列

$ n=5;echo $(((0<n)) && echo 'big' || echo 'zero')
big
$ n=0;echo $(((0<n)) && echo 'big' || echo 'zero')
zero

厳密に言うと三項演算子ではないのかも知れないけれども。

パスを取得する

#! /bin/sh
# 相対パス
echo ${0/%${0##*/}/.}
# 絶対パス
echo $(cd $(dirname ${0}) && pwd)

crontabを更新する

crontab /path/to/file

sudoにパスワードを渡す

$ echo PASSWORD | sudo -S sudo aptitude update
$ echo PASSWORD | sudo -S -p '' -u USER : 2>/dev/null
$ sudo aptitude update

libmemcahedツール

パターンにマッチするメモリキャッシュを削除する

$ memdump --servers=server1,server2 \
    | grep -P "PATTERN" \
    | tr '\n' '\0' \
    | xargs -0 memrm --servers=server1,server2