パトラーーーーーッシュ ptrash

事のはじまりは、

find . -size +100M -exec rm {} \;
とすべきところを
find . -size +10M -exec rm {} \;

とかやって、悲しい思いをしてしまったから、
これはイカンなぁとおもい、ぐぐってみました。



ptrashってのがあるらしい。
パトラッシュ! フランダースの犬ですか? w

rmコマンドをptrashに置き換え、オペレーション・ミスを防ぐ
http://www.glidenote.com/archives/577


曰く、
ptrashを利用するメリットして
-rmコマンドのようにファイルをいきなり削除しない
-致命的なオペレーションミスを防げる(rm -rf / とか)
-ゴミ箱に移動したファイルを元の場所(パス)に戻せる

rm -rf / からのリカバーはさすがに無理があるんじゃね? とおもいつつも、
簡単なオペミスからのリカバーはぜひ欲しいところ。

上の記事では、CentOS5の場合で、EPELからひっぱることができたみたいですが、

残念ながら、CentOS6.3(Final)には吊るしのパッケージは無さそう
(pkgs.orgでのサーチしてみると、確かにその通り)

ううむ、ソースからいれるしかないか,
と考えてググってみたんですが、みつかんない orz

半分あきらめモード,心折れそうな気配w

ここであきらめたらアカンとおもいなおして....
cent5のrpmパッケージがあるんなら、それをもってきて
rpm -qi とか rpm -qpi とかすれば、情報をゲットできるんじゃね?

ビンゴ! 以下、結果

[root@centos-hira download]# rpm -qpi ./ptrash-1.0-1.el5.i386.rpm
警告: ./ptrash-1.0-1.el5.i386.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID
217521f6: NOKEY
Name        : ptrash                       Relocations: (not relocatable)
Version     : 1.0                               Vendor: Fedora Project
<http://bugzilla.redhat.com/bugzilla>
Release     : 1.el5                         Build Date: 2008年08月09日
04時12分42秒
Install Date: (not installed)               Build Host:
xenbuilder2.fedora.redhat.com
Group       : Applications/System           Source RPM:
ptrash-1.0-1.el5.src.rpm
Size        : 37050                            License: GPLv2+
Signature   : DSA/SHA1, 2008年08月12日 00時47分36秒, Key ID 119cc036217521f6
Packager    : Fedora Project <http://bugzilla.redhat.com/bugzilla>
URL         : http://pjp.dgplug.org/tools/
Summary     : Move file(s) to ~/.trash directory
Description :
Ptrash moves the named file(s) to the ~/.trash directory. Trash is located
under the home directory of a user. It is a simple console based utility,
I wrote after deleting some files, which I couldn't retrieve back.
Ptrash can also restore file(s) back to there original location. It has really
proved very handy to me.
[root@centos-hira download]#

で、場所我特定できて、ようやくソースをDLできました。
URL : http://pjp.dgplug.org/tools/

[hirasawa@centos-hira download]$ ls -ltr | grep ptrash-1.0.1.tar.gz
-rw-rw-r--. 1 hirasawa hirasawa  165766  2月  1 11:17 2013 ptrash-1.0.1.tar.gz
[hirasawa@centos-hira download]$

ふー、ここまで、小一時間


あとは解凍して、
READMEの文面にしたがい
./configure
make
make install (でなくて、 checkinstallを使用)

以下は checkinstallの結果

[root@centos-hira ptrash-1.0.1]# checkinstall

checkinstall 1.6.3, Copyright 2010 Felipe Eduardo Sanchez Diaz Duran
           このソフトウェアはGNU GPLの下でリリースしています。

The checkinstallrc file was not found at:
/usr/local/sbin/../checkinstallrc

デフォルトの内容を使うものとします

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]:

パッケージのドキュメンテーションを準備..OK

使用するパッケージ方式を選んでください。
Slackwareなら[S], RPMなら[R], Debianなら[D]を入力R


このパッケージの説明を書いてください
説明の末尾は空行かEOFにしてください。
>>

**************************************
**** RPM package creation selected ***
**************************************

このパッケージは以下の内容で構成されます:

1 -  Summary: [ Package created with checkinstall 1.6.3 ]
2 -  Name:    [ ptrash ]
3 -  Version: [ 1.0.1 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ Applications/System ]
7 -  Architecture: [ i386 ]
8 -  Source location: [ ptrash-1.0.1 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ ptrash ]

変更するものの番号を入力してください。Enterで続行します:

Installing with make install...

========================= インストールの結果 ===========================
make[1]: ディレクトリ `/home/hirasawa/ダウンロード/ptrash-1.0.1' に入ります
test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
  /usr/bin/install -c 'ptrash' '/usr/local/bin/ptrash'
/usr/bin/install: warning: /usr/local/bin/ptrash: failed to change context to
: そのようなファイルやディレクトリはありません
test -z "/usr/local/share/info" || /bin/mkdir -p "/usr/local/share/info"
 /usr/bin/install -c -m 644 './ptrash.info'
'/usr/local/share/info/ptrash.info'
/usr/bin/install: warning: /usr/local/share/info/ptrash.info: failed to change
context to : そのようなファイルやディレクトリはありません
 install-info --info-dir='/usr/local/share/info'
'/usr/local/share/info/ptrash.info'
test -z "/usr/local/share/man/man1" || /bin/mkdir -p
"/usr/local/share/man/man1"
 /usr/bin/install -c -m 644 './ptrash.1' '/usr/local/share/man/man1/ptrash.1'
/usr/bin/install: warning: /usr/local/share/man/man1/ptrash.1: failed to
change context to : そのようなファイルやディレクトリはありません
 /usr/bin/install -c -m 644 './ptrash.1' '/usr/local/share/man/man1/ptrash.1'
/usr/bin/install: warning: /usr/local/share/man/man1/ptrash.1: failed to
change context to : そのようなファイルやディレクトリはありません
make[1]: ディレクトリ `/home/hirasawa/ダウンロード/ptrash-1.0.1' から出ます

======================== インストールに成功しました ==========================

Copying documentation directory...
./
./README
./COPYING

tempディレクトリにファイルをコピー..OK

Stripping ELF binaries...OK

manページを圧縮..OK

ファイルリストを作成..OK

RPMパッケージを作成..OK

注意: パッケージはインストールされません

tempファイルを削除..OK

doc-pakディレクトリを削除..OK

バックアップパッケージを書き込み..OK

temp dirを削除..OK


**********************************************************************

 Done. The new package has been saved to

 /root/rpmbuild/RPMS/i386/ptrash-1.0.1-1.i386.rpm
 You can install it in your system anytime using:

      rpm -i ptrash-1.0.1-1.i386.rpm

**********************************************************************

[root@centos-hira ptrash-1.0.1]#




-------------------------
[root@centos-hira i386]# pwd
/root/rpmbuild/RPMS/i386
[root@centos-hira i386]# ls -ltr | grep ptrash-1.0.1-1.i386.rpm
-rw-r--r--. 1 root root   21780  2月  1 11:23 2013 ptrash-1.0.1-1.i386.rpm
[root@centos-hira i386]#

さてインストール インストール

[root@centos-hira i386]# rpm -ivh ptrash-1.0.1-1.i386.rpm
準備中...                ########################################### [100%]
        installing package ptrash-1.0.1-1.i386 needs 4KB on the /selinux
filesystem

はぁ?

ぐぐってみたら、以下にカウンターメジャー

http://yanor.net/wiki/?Linux%2F%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E7%AE%A1%E7%90%86%2Fcheckinstall


しじに従い、

1022 cd /usr/local/lib/checkinstall/
1023 ls -ltr
1024 cp -pr checkinstallrc checkinstallrc.org
1025 vi checkinstallrc
1026 pwd
1027 cd /home/hirasawa/download/ptrash-1.0.1
1028 ls -ltr
1029 checkinstall --exclude=/selinux
1030 history

[root@centos-hira i386]# rpm -ivh ptrash-1.0.1-1.i386.rpm
準備中...                ########################################### [100%]
   1:ptrash                 ########################################### [100%]
[root@centos-hira i386]# which ptrash
/usr/local/bin/ptrash
[root@centos-hira i386]#

ふー、ながかったぜ

全然関係ないけど、GNOMEのゴミ箱の実体の場所はここらへんなのね。

[hirasawa@centos-hira files]$ cd ~/.local/share/Trash
[hirasawa@centos-hira Trash]$ ls -ltr
合計 8
drwx------. 2 hirasawa hirasawa 4096  2月  1 09:41 2013 info
drwx------. 3 hirasawa hirasawa 4096  2月  1 09:41 2013 files
[hirasawa@centos-hira Trash]$