##環境
iMac (2017)
macOS Big Sir ver 11.4
##状況
rmtrashがをHomebrewでインストールするため、まずはパッケージの検索。
% brew search rmtrash
==> Formulae
trash
rmtrashがヒットせず、trashがでてくる。
どうやら、rmtrashは使用不可らしい。
(参考:https://github.com/Homebrew/homebrew-core/pull/65438)
##rmtrashの代替パッケージをインストール
以下のrmtrashの代替パッケージtrashをインストールしました。
https://github.com/h-matsuo/macOS-trash
インストールの手順はインストラクション通り。
1, スクリプトファイルSource code (zip)をダウンロード
2, 展開した後に"trash"ファイルを/usr/local/bin に配置
(Finder→移動→/usr/local/bin と移動し、trashを手動で移動しました。)
###動作確認→NG
テスト用のディレクトリであるTestFolderを作ってから、trashコマンドを試してみる。
※ ディレクトリの削除は-rオプションが必要。
% mkdir TestFolder
% trash -r TestFolder
29:98: execution error: FinderにApple Eventsを送信する権限がありません。 (-1743)
エラー発生。どうやらmacOS Mojave(10.14)から新しく導入された「オートメーション」の機能より、制限を受けているらしい。
・「オートメーション」機能によるプログラムの制御を解除する方法
1.「システム環境設定」の「セキュリティとプライバシー」を開く
2.「プライバシー」タブをクリックし、画面左側の「オートメーション」をクリック
3.「ターミナル」の項目の「Finder」にチェックをつける
###気を取り直してもう一度、動作確認→OK
先ほど作ったテスト用のディレクトリであるTestFolderにtrashコマンドを試してみる。
% trash -r TestFolder
ゴミ箱を確認してみると、TestFolderがありました。
現在,ゴミ箱からもとに戻す機能はサポートされていないそうです。
GUI を用いて戻すことができるとのことなので試してみたら、Finder.app を使用して手動でゴミ箱から出すことができました。
###最後にrmコマンドの代わりにtrashが動くように設定(エイリアスを切る)
% echo "alias rm=trash" >> ~/.bashrc
% source ~/.bashrc
これにより、rmコマンドでファイルがいきなり削除されるのではなく、ゴミ箱に移動されるようになるはず。
テスト用のファイルnewfileを作成し、消してみます。
% echo > newfile
% rm newfile
ゴミ箱を確認してみると、newfileがありました。
rmコマンドでtrashパッケージを動かせているようです。
これで安心してrmコマンドを打てます。
以上です。
##参考
以下の記事を参考にしました。
「Macでrmtrashの代替とLinuxでのrmの置き換え」