🍎

[Mac向け] ターミナルでrmしたときにゴミ箱にコピーをとっておく

2014/07/10に公開

はじめに

以前は

alias rm="gmv -f -b -t ~/.Trash"    # require `brew install coreutils`

で実現してたんですが、これだとゴミ箱にすでに同名のファイルがあると実行できないのと、ゴミ箱のコンテキストメニューで 戻す ができなくて不便でした。

mv2trash

小飼弾さんが作った mv2trash ですべて解決できました👍

  • ゴミ箱に同名のファイルがあっても、ファイル名の末尾に日付の文字列を付加してゴミ箱に移動させてくれる
  • ゴミ箱から 戻す でもとのフォルダに戻すことができる

ので最高です。

$ curl -L https://raw.githubusercontent.com/dankogai/osx-mv2trash/master/bin/mv2trash > /usr/local/bin/mv2trash
$ chmod a+x /usr/local/bin/mv2tarsh

という感じでインストールして、

# .zshrc
alias rm="mv2trash"

という感じでエイリアスを貼れば使えます。(初回のみOSからの権限確認が出ますが、一度OKすればそれ以降は聞かれなくなります✋)

参考

rm -rf できない問題

ちなみに、この状態だと rm -rf が使えなくなるので grm コマンド(GNUバージョンの rm コマンド)を入れておくと便利です。

$ brew install coreutils

GNU Coreutils をインストールすると、 grm でGNUバージョンの rm コマンドが使えるようになるので、

$ grm -rf /foo/bar

という感じで使いましょう✋

ちなみに:rmtrash

ちなみに、有名どころで rmtash というOSSもあります。

以前は

$ brew insatll rmtrash

でインストールできて手軽だったのですが、ライセンスが不明瞭で作者とも連絡がつかないということで、先日 homebrew-coreから削除されてしまった ようです💨

GitHubから直接ダウンロードすれば使うことはできます。

$ curl -L https://raw.githubusercontent.com/PhrozenByte/rmtrash/master/rmtrash > /usr/local/bin/rmtrash
$ curl -L https://raw.githubusercontent.com/PhrozenByte/rmtrash/master/rmdirtrash > /usr/local/bin/rmdirtrash
$ chmod a+x /usr/local/bin/rmtrash /usr/local/bin/rmdirtrash
# .zshrc
alias rm="rmtrash"
alias rmdir="rmdirtrash"

が、rmtrashを使っても結局、ゴミ箱のコンテキストメニューで 戻す ができないので、素直にmv2trashを使うのがいいと思います✋

GitHubで編集を提案

Discussion