Help us understand the problem. What is going on with this article?

サーバでrmコマンドを安全にする

More than 1 year has passed since last update.

サーバで操作してる時にrmコマンドで消さないようにしたい。
ローカルにあるファイルとサーバにあるファイルを間違え、消してはいけないサーバのファイルを削除してしまいそうになったのでどう対策したのか書きます。

やったこと

  1. rm でゴミ箱へ送られるようにする
  2. 本当に削除したいものは rmrm で削除するようにする

1. rm でゴミ箱へ送られるようにする

rmでゴミ箱へ送るためのaliasなどを公開されている方がいますが、便利そうだったのでtrashを使うことにしました。同名のファイルを削除した時に番号を割り振るなどをやってくれてるので早いです。
インストール。

$ cd ~/src  # 自分がサーバでソースをインストールする先
$ git clone git@github.com:rcmdnk/trash.git

ここで落としてきたtrashを叩くと分かりますがsentakuが必要です。なのでここでは先にインストールしちゃいましょう。

$ git clone git@github.com:rcmdnk/sentaku.git

trashとsentakuにパスを通す。どこかパスが通ってる場所にリンク貼っても良いですし以下でも可。

.bashrc
export PATH=$PATH:~/src/trash/bin:~/src/sentaku/bin

反映

$ source ~/.bashrc

試してみます

$ cd ~/tmp/
$ touch hoge
$ trash hoge
~/tmp/hoge was moved to ~/.Trash/my_trash_box/20171109/hoge

# 同名のファイルをtrashすると連番が振られる
$ touch hoge
$ trash hoge
~/tmp/hoge was moved to ~/.Trash/my_trash_box/20171109/hoge.1

rm は trash へのエイリアスにしてしまいます

.bashrc
alias rm="trash"

更に、デフォルトの設定だと、一度にゴミ箱へ移動できる容量が100MBなので、3GBにしておきました。

.bashrc
export MAXTRASHBOXSIZE=3072
export MAXTRASHSIZE=3072

trash詳細

色んなオプションがありますが少しだけ。
-bでゴミ箱から戻せます(これがめっちゃ便利です)。

 -b              Restore (turn Back) the file from the trash box

環境変数に関して。

環境変数 詳細 デフォルト
TRASHLIST ゴミ箱へ移動したファイル/ディレクトリの情報が残っている。ログファイルのようなもの。 ~/.trashlist
TRASHBOX ゴミ箱の場所。この下にゴミが捨てられていく。 ~/.Trash
MAXTRASHBOXSIZE ゴミ箱の容量(MB)。クリーンアップする時にこの容量を超えている分だけ削除される。 1024
MAXTRASHSIZE 一度に捨てられるゴミの上限(MB)。このサイズを超えるゴミは rm コマンドで直接削除される。 102

2. 本当に削除したいものは rmrm で削除するようにする

rmへエイリアスを張ってもtrashで上書きされてしまっているので /bin/rm へ直接エイリアス。

.bashrc
alias rmrm="/bin/rm"

反映する。

$ source ~/.bashrc

最後に試した例を載せておしまいです。

$ cd ~/tmp
$ touch foo
$ rm foo
~/tmp/foo was moved to ~/.Trash/my_trash_box/20171109/foo
$ touch foo
$ rmrm foo
$ 
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした