2005年03月27日

libtrash : Linuxでゴミ箱を使う

Linuxで「ゴミ箱」を使う方法はいくつかありますが,ここではlibtrashを紹介します.

libtrashは,unlink(2)などglibcのいくつかの関数を上書きするライブラリです.ファイルを削除する代わりにファイルをごみ箱に移動するようにします.これにより,rmコマンドのミスなどによる事故を防ぐことができます.glibcの関数を上書きするという強引な手法であり,Linux初心者には勧められませんが,上手に使えば便利です.

上書きする,と書きましたが,実際にはlibtrashをpreload(環境変数LD_PRELOADの利用,/etc/ld.so.preloadの利用,のいずれか)して使います.これにより,unlink(2)関数を呼ぶと,libtrashの関数が使用されるようになります.

利用する際の注意点をいくつか挙げます.まず,unlink(2)を使わずにファイルを削除する場合にはlibtrashでは対応できません.例えば,C++で書かれたプログラムの多くはunlink(2)は使っていないと思います.libtrashは決して万能ではありません.

次に,libtrashを通常のライブラリ検索パス(/etc/ld.so.confやLD_LIBRARY_PATH)には置かないほうが良いでしょう.なんらかのプログラムのビルド時にlibtrashがリンクされてしまうのは,多くの場合望ましいことではないはずです.また,検索パスに含めないことで,LD_PRELOADを書き換えるだけで簡単にlibtrashを無効にできるという利点もあります(LD_PRELOADを使っている場合には).

さらに,ホームディレクトリを持たないユーザが存在する場合は注意が必要かもしれません.libtrashは~/Trashディレクトリを作ってそこにファイルを移動しようとするためです.なお,ゴミ箱ディレクトリは変更可能です(コンパイル時または~/.libtrash).

なお,Vine Linux用の公式パッケージは僕が作成しました.aptでインストールが可能です.上でも触れましたが,preloadする設定が別途必要ですのでドキュメントをご覧ください.
posted by usami-k at 23:57| Comment(0) | TrackBack(0) | 雑文 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。