ターミナルでファイルを操作していて、思わず消してはいけなかったファイルに対してrmを実行してしまったなんて経験は誰もがあるのではないでしょうか。rmで消すとゴミ箱に入らず直接消されてしまうので復旧が相当困難です。これは大きなショックです。 そこで使ってみたいのがrmの代替コマンドtrashです。その名の通り、各プラットフォームのゴミ箱にファイルを入れる操作をrmの代わりに行ってくれるコマンドです。

trashの使い方

trashのインストールはnpmを使って簡単にできます。まずはコマンドオプションを見てみましょう。

$ trash --help
Cross-platform command-line app for moving files and directories to the trash - A safer alternative to `rm`

Usage
  $ trash <path> [</path><path> ...]

Example
  $ trash unicorn.png rainbow.png

これだけです。とても簡単ですね。実際使う場合も

$ trash *.png

みたいにすればOKです。Mac OSXで実行するとゴミ箱にファイルを入れる時のサウンドが鳴ります。

ファイルはゴミ箱に移動しました。

仕組みとしては、Mac OSXの場合はファイルをゴミ箱に入れるAppleScriptを実行しています。Linuxの場合はtrash-cliというPython製のスクリプトを実行します。Windowsの場合はcmdutilsを使っています。

mvコマンドとの違いとしてはファイル復旧がとても簡単というのがあります(Mac OSXならコマンド+Zで戻せます)。また、外部ドライブの場合も使えるメリットがあります。Windowsの場合はゴミ箱のパスもバージョンごとに違うのでcmdutilsを通すことで統一して扱えるメリットもあるようです。

いずれにしても間違ってファイルを削除した経験がある方はtrashを使うと幸せになれるのではないでしょうか。

trashはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。

sindresorhus/trash