:!-- Auther ycos@pos.to / Powerd by vi(1) --> Linux STARTUP - Bash programming 009.clean

Section Next | Prev


013 clean - ワークファイルの削除

概要
一時的なファイルと思われるファイルの表示と削除。
-l ファイルの表示
-r ファイルの削除(対話モード)
-R ファイルの削除
*)一時的なファイルを思われるものは以下のとおり

スクリプトと解説 - [text]
#スクリプト解説
1#! /bin/bash #
2# @(#) remove tmp files ( a.out / core .. ) #
3usage() # ヘルプを表示する関数
4{ #
5cat <<EOD #
6$0 [-lrR] #
7 -l list work files(defaults) #
8 -r remove work files with -i option #
9 -R remove work files #
10EOD #
11exit 0 # スクリプトを終了
12} #
13 #
14[ $# -ne 1 ] && set - -l # 引数が1つでなければ "-l" を引数にセットしなおす
15case $1 in # 引数の1つ目を検査、コマンドを選定
16    -l) cmd="/bin/ls -ld" ;; # -l の時、ls を準備
17    -r) cmd="/bin/rm -i" ;; # -r の時、rm を準備
18    -R) cmd="/bin/rm -f" ;; # -R の時、rm を準備
19    *) usage;; # 上記以外はヘルプ関数を呼び出す
20esac #
21 #
22find . \( \ # find によるファイルの検索(複数条件)
23        -name '[a-zA-Z]' \ # 一文字ファイル(a, B など)
24        -o -name '?.*' \ # 1文字のベースファイル(a.txt, b.cなど)
25        -o -name 'core' \ # core ファイル
26        -o -name '*_bakcup' \ # _backup で終わるファイル
27        -o -name '.*.sw[a-z]' \ # vim のワークファイル
28        -o -name '.nfs*' \ # NFSのワークファイル
29        -o -name '*~' \ # ~ で終わるファイル
30        \) -exec $cmd $* {} \; # 15〜20行で用意したコマンドを実行

実行例
$ clean
-rwxr-xr-x  1 ycos users 81240 Nov  3 16:00 ./core
-rwxr-xr-x  1 ycos users 4709 Nov  3 16:00 ./a.out
-rw-r--r--  1 ycos users 16782 Nov  3 16:24 ./a.txt
-rw-r--r--  1 ycos users 30 Nov  3 16:00 ./a.c
$ clean -r
/bin/rm: remove regular file `./core'? y
/bin/rm: remove regular file `./a.out'? y
/bin/rm: remove regular file `./a.txt'?
/bin/rm: remove regular file `./a.c'? y

Section Next | Prev