Next: , Previous: Archiving, Up: Common Tasks


4.3 クリーンアップ

このセクションでは,さまざまな状況で,不要なファイルを削除する例を提供 します.マージの要求で更新された時に作成されるCVSバックアップファイルを 削除するコマンドは以下のようになります.

     find . -name '.#*' -print0 | xargs -0r rm -f

上記のコマンドは動作しますが,以下のものがより安全です.

     find . -name '.#*' -depth -delete

/tmp内のゴミファイルをきれいにするためにこのコマンドを実行するこ とが可能です.ログアウトする時にシェルがそれを実行するよう,(使用してい るシェルに依存しますが,.bash_logout.logout,または .zlogout)ファイルに書き出すことも可能です.

     find /tmp -depth -user "$LOGNAME" -type f -delete

findコマンドでディレクトリを削除する場合,findが削除され たディレクトリの再帰的な削除を試みるとき,偽りのエラーメッセージを見る かもしれません.‘-depth’オプションを使用することで,通常この問題は 解決されます.

古いEmacsのバックアップファイルと自動保存ファイルを削除するために,以下 のようなコマンドが使用可能です.VMメーラーのようなEmacsパッケージは, #reply to David J. MacKenzie<1>#のようにスペースを含む一時ファイ ルを作成することが多いので,ヌルで終端されているファイル名を使用する方 法は,この場合には特に重要です.

     find ~ \( -name '*~' -o -name '#*#' \) -print0 |
       xargs --no-run-if-empty --null rm -vf

/tmpから古いファイルを削除するため,通常はcronから実行し ます.

     find /tmp /var/tmp -not -type d -mtime +3 -delete
     find /tmp /var/tmp -depth -mindepth 1 -type d -empty -delete

上記の二番目のfindコマンドは,空のディレクトリの最初の深度をきれ いにするため‘-depth’を使用し,それで親が空になり,削除も可能になる ことを期待しています.全体が空になった場合,/tmp自身を削除しない ように,‘-mindepth’を使用しています.