🍎
[Mac向け] ターミナルでrmしたときにゴミ箱にコピーをとっておく
はじめに
以前は
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を使うのがいいと思います✋
Discussion