find コマンド取得したパスは -exec オプションを使って コマンドを実行することができます。
$ find . -mtime 3 -exec rm {} \;
-exec を複数書くと 複数のコマンドを実行することができます。
$ find . -mtime 3 -exec echo {} \; -exec rm {} \;
type コマンドで 情報を表示すると たまに "is hashed" と表示されることがあります。
$ type sl sl is hashed (/usr/games/sl)
なんだろう?と思って調べてみると 下のサイトに「コマンドの場所へ高速にアクセスするために、よく使用するパスをキャッシュにとっていて、ハッシュテーブルがそのキャッシュ」と 書いてありました。
[参考]
typeとwhichの違いって? - OpenGroove
なるほど。
現在ハッシュテーブルにキャッシュされているコマンドは hash コマンドで確認できます。
$ hash
hits command
1 /usr/bin/man
3 /usr/games/sl
hash コマンドは シェルの組み込みコマンドです。
$ type hash
hash is a shell builtin
"-r" オプションで ハッシュテーブルを削除できます。
$ hash -r
削除後に確認してみます。
$ hash
hash: hash table empty
空になっています。
ハッシュテーブルが空になった状態で もう 1 度見てみます。
$ type sl
sl is /usr/games/sl
"is hashed" が表示されなくなりました。
この前の 補足になるのですが、 trap コマンドは シェルの組み込みコマンドです。
とりあえず which コマンド。
$ which trap
検索パスにないため 何も表示されません。
type コマンドで 情報を表示することができます。
$ type trap trap is a shell builtin
シェルの組み込みコマンドの場合 パスではなく "shell builtin" と表示されます。
cd や alias コマンドなども同様です。
$ type cd cd is a shell builtin $ type alias alias is a shell builtin
組み込みコマンドでないと "shell builtin" 以外が表示されます。
$ type find find is /usr/bin/find $ type ls ls is aliased to `ls -F'
ただし、組み込みコマンドでも
コマンドが alias を設定されていると "is aliased" と
表示されます。
("-t" オプションは型のみ表示)
$ type -t cd builtin $ alias cd="cd" $ type -t cd alias $ unalias cd $ type -t cd builtin
ちなみに type コマンドも組み込みコマンドです。
$ type type
type is a shell builtin
ロックファイルや一時ファイルの削除など、シェルスクリプトの終了時に 実行したい処理というのがあります。 異常終了時に削除しておかなければならない場合など 毎回記述するのは大変です。
そんなときに使える trap というコマンドがあります。
trap コマンドは次のように処理とシグナルを指定します。
trap "echo hogehoge" EXIT
とりあえずコマンドラインで試してみます。
INT は [Ctrl]+[c] などによる割り込みのシグナルです。
$ trap "echo hogehoge" INT
[Ctrl]+[c] を押すと "echo hogehoge" を実行します。
$ trap "echo hogehoge" INT $ ^Chogehoge $ ^Chogehoge
解除するにはシグナルだけを指定します。
$ trap INT $ ^C
[Ctrl]+[c] を押しても何もおこりません。
シェルスクリプトの中に 次のように書いておけば 終了時にファイルを削除してくれます。
trap "rm text1.txt" EXIT
EXIT はプロセス終了時のシグナルなので シェルスクリプトの終了をトラップしてくれます。
処理の進行状態によって削除するファイルが増えるときは 次のように再定義する方法で対応することもできます。
DELFILE="${DELFILE} test1.txt"
trap "rm ${DELFILE}" EXIT
(...処理....)
DELFILE="${DELFILE} test2.txt"
trap "rm ${DELFILE}" EXIT
現在の設定内容は "-p" オプション、 シグナルの一覧は "-l" オプションで 表示させることができます。