22
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Shell ScriptAdvent Calendar 2016

Day 11

[macOS] コマンドラインからゴミ箱へ削除するスクリプトを書きました

Last updated at Posted at 2016-12-10

これは,Qiita Shell Script Advent Calendar 2016 の 11 日目の記事です。
担当は @hiroyuki_jp です。


きっかけ(お急ぎの方は飛ばしてください)

ファイルやディレクトリを削除できる,rmrmdir といった便利なコマンドがあります。
みなさんよく使うと思うのですが,一般的に,これらのコマンドで消したファイルは復元するのが難しいと思います。

一方,Windows や macOS,その他の主要なシステムでは「ゴミ箱」が用意されており,こちらに捨てたファイルは,ゴミ箱を空にしない限り簡単に元の場所に戻すことができます。
削除したファイルを復元できることには大きな安心感があります。

macOS では,ゴミ箱の場所は ~/.Trash です。
ところが,単純に mv <file> ~/.Trash しても,下図のようにコンテキストメニューに「戻す」が出てきません。

Just move to ~/.Trash

そこで,コマンドラインから,指定したファイルを(「戻す」機能に対応させたまま)ゴミ箱に削除するコードを,シェルスクリプトで書いてみました。

ツール:trash をつくりました

MIT ライセンスで公開しています。リポジトリはここです

内部で簡単な AppleScript を動かしています。
実装はソースコードを見ればすぐ分かると思うので(初心者が書いたコードですので……;^^),以下では導入方法と使い方を紹介します。

インストール

スクリプトファイルをダウンロードし,/usr/local/bin に配置してください。
次のコードを実行すれば一発で入ります。

$ curl -O https://raw.githubusercontent.com/h-matsuo/macOS-trash/master/trash; chmod +x trash; mv trash /usr/local/bin

※ 本ツールは macOS 専用です。

使い方

Usage は次の通りです。

$ trash [-r] <file>...

<file> に削除したいファイルを 1 つ以上指定します。ディレクトリの場合は,-r オプションを付けます。
この辺りの使い方は rm コマンドと同じです。

相対パスを指定しても大丈夫です:

$ trash ../tmp/*

元に戻すときは?

現状,コマンドラインから元に戻す機能には対応しておりません。
元に戻すときは Finder.app から行ってください。

Put back from trash

以上,作ってみたツールのご紹介でした。

ちゃんとシェルスクリプトを書いたのは初めてなので,ご意見等あればぜひお願いします。

22
11
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?