LinuxやMacのCUI上でファイルを削除してしまったら、バージョン管理等で別の場所に保存でもしていない限り、通常は元に戻す事は出来ない。
もし必要なファイルを間違って削除してしまったら、HDDの復元やバックアップなどからなんとかして復旧させるか、泣き寝入りするしかないだろう。
今回紹介するツール『gomi』は、削除とリストアを簡単、かつ分かりやすく行えるCUIのゴミ箱ツールだ。開発はGOで行われている。
開発者は日本人のb4b4r07さんだ。類似したソフトである「trash-cli」などと違い単一のバイナリで動作するため、Pythonのバージョンなどに気を使わなくても良いのが特徴。
それでは、早速使ってみよう。なお、環境はCentOS 7およびUbuntu 14.04 LTSを利用している。
1.インストール
『gomi』はgoコマンドからインストールすることが出来る。
まだgoコマンドが無いのであれば、以下のコマンドを実行しgoコマンドを導入、『gomi』のインストールを行う。
Debian/Ubuntuの場合
sudo apt-get install go
export GOPATH=適当なPATH
go get -u github.com/b4b4r07/gomi
RHEL系の場合
sudo yum install go
export GOPATH=適当なPATH
go get -u github.com/b4b4r07/gomi
なお、環境によってはコンパイル出来ない場合があるので、その場合は以下のようにコマンドを実行してコンパイルを行う。
go build $GOPATH/src/github.com/b4b4r07/gomi/cmd/gomi/gomi.go
それでもうまく行かなければ、こちらからバイナリファイルをダウンロードして配置すると良いだろう。
2.ファイルの削除
さて、それでは実際にファイルを削除してみよう。
gomiでのファイル削除方法は簡単で、rmと同様に以下のようにコマンドを実行する。
もちろん、ワイルドカード等も利用可能だ。
gomi 削除するファイル
[root@dctest01 ~]# ls -la /work/test*
-rw-r--r--. 1 root root 28 6月 1 07:28 /work/test.list
-rw-r--r--. 1 root root 12 4月 21 23:56 /work/test1
-rw-r--r--. 1 root root 10 4月 22 23:43 /work/test123
-rw-r--r--. 1 root root 264 4月 22 23:50 /work/test5
/work/test:
合計 0
drwxr-xr-x. 3 root root 40 5月 3 19:08 .
drwxr-xr-x. 5 root root 96 6月 1 07:28 ..
-rw-r--r--. 1 root root 0 5月 3 19:08 aaaa
-rw-r--r--. 1 root root 0 5月 3 19:08 aaaaa
drwxr-xr-x. 2 root root 18 5月 3 19:06 test
[root@dctest01 ~]# gomi /work/test*
[root@dctest01 ~]# ls -la /work/test*
ls: /work/test* にアクセスできません: そのようなファイルやディレクトリはありません
[root@dctest01 ~]#
削除したファイルは、「$HOME/.gomi/削除年/月/日」フォルダに配置されている。
いつ、何を、どこから削除したのかを調べたい場合は、「$HOME/.gomi/log」を参照するとわかる。
[root@dctest01 ~]# cat $HOME/.gomi/log
2015-06-07 06:51:39 /root/test /root/.gomi/2015/06/07/test.06_51_39
2015-06-07 06:51:39 /root/test.txt /root/.gomi/2015/06/07/test.txt.06_51_39
2015-06-07 06:51:39 /root/test123.log /root/.gomi/2015/06/07/test123.log.06_51_39
2015-06-07 06:51:39 /root/test1234 /root/.gomi/2015/06/07/test1234.06_51_39
2015-06-07 06:51:39 /root/test_eval_1.sh /root/.gomi/2015/06/07/test_eval_1.sh.06_51_39
2015-06-07 06:51:39 /root/test_eval_2.sh /root/.gomi/2015/06/07/test_eval_2.sh.06_51_39
2015-06-07 06:51:39 /root/test_eval_3.sh /root/.gomi/2015/06/07/test_eval_3.sh.06_51_39
2015-06-07 06:51:39 /root/test_ping /root/.gomi/2015/06/07/test_ping.06_51_39
2015-06-07 06:51:39 /root/test_ping_192.168.0.1 /root/.gomi/2015/06/07/test_ping_192.168.0.1.06_51_39
2015-06-07 06:51:39 /root/test_ping_192.168.0.175 /root/.gomi/2015/06/07/test_ping_192.168.0.175.06_51_39
2015-06-07 06:51:39 /root/test_ping_192.168.0.225 /root/.gomi/2015/06/07/test_ping_192.168.0.225.06_51_39
2015-06-07 06:51:39 /root/test_ping_192.168.0.245 /root/.gomi/2015/06/07/test_ping_192.168.0.245.06_51_39
2015-06-07 06:51:39 /root/test_ssh.sh /root/.gomi/2015/06/07/test_ssh.sh.06_51_39
2015-06-07 11:50:41 /work/test /root/.gomi/2015/06/07/test.11_50_41
2015-06-07 11:50:41 /work/test.list /root/.gomi/2015/06/07/test.list.11_50_41
2015-06-07 11:50:41 /work/test1 /root/.gomi/2015/06/07/test1.11_50_41
2015-06-07 11:50:41 /work/test123 /root/.gomi/2015/06/07/test123.11_50_41
2015-06-07 11:50:41 /work/test5 /root/.gomi/2015/06/07/test5.11_50_41
3.ゴミ箱から戻す
さて、それではゴミ箱からファイルを戻してみよう。
普通にファイルをmvで移すこともできるが、gomiにはゴミ箱から元のディレクトリに戻す機能がある。
以下のコマンドを実行し、ゴミ箱から元のディレクトリに戻すファイルを選択する。
gomi -r
対象となるファイルを「Enter」キーで選択すると、そのファイルが元の場所に移動される。
そのファイルの中身を調べたい場合には、「Ctrl + q」キーを入力することで、以下のようにクイックビューを開く事が出来る。
4.ゴミ箱から削除する
ファイルをゴミ箱からも削除する場合は、「gomi -r」の画面上で「Ctrl + _」キーを入力することで削除できる。
なお、この削除を行うとlogからもその痕跡が無くなるので注意。
う~ん、いいなぁこれ…
2年位したら、Ubuntuあたりに標準で乗ってそうな気もする。