rcmdnk's blog

ideaco New TUBELOR ゴミ箱 ブラック

multi_clipboardsd_cl に引き続き コマンドラインで使えるゴミ箱コマンドも選択画面でインタラクティブに ゴミ箱に捨てたものを元に戻せるようにアップデートしました。

Sponsored Links

ゴミ箱コマンド: trash

コマンドライン操作でrmしてしまうと元に戻せないわけですが、 WindowsやらMacやらでGUI操作でゴミ箱というものに慣れてると 元に戻せないコマンドは不安な時があります。

ということで、元に戻せる削除コマンドとして trashというスクリプトを作って使っています。

rm -rfのプロテクト、コマンドラインでのゴミ箱

実はHomebrewだと別にtrashというコマンドがあるんですが 1 、 そちらはMacのゴミ箱の実装を使ってるので、ちょっと遅いのとMac専用です。 ゴミ箱を開いて直接GUIで元に戻すコマンドが使えたりする利点はありますが、 直接移動したりは出来るのでそれ程利点はない(と思ってます。。。)

上の自分が作ったtrashコマンドは、単にBashのシェルスクリプトで、 適当なゴミ箱ディレクトリを作ってそこに移動させるだけなので MacでもLinuxでもCygwinでも動きます。

Macの場合は~/.TrashがMacのゴミ箱として存在してるので、 デフォルトではここを使って、ゴミ箱フォルダを開くと trashコマンドで捨てたファイルも見れる様になっています。 当然ゴミ箱を空にすると消えます 2

使い方は

$ trash file1

とするとfile1が設定されたゴミ箱ディレクトリに移動され ~/.trashlistに情報が書き加えられます。 情報として、削除日時と削除された場所、ゴミ箱内での位置、が記録されます。

ゴミ箱内では~/.Trash/my_trash_box/20140112/file1の様な位置に移動されます。 全てのファイルは指定したゴミ箱以下のmy_trash_boxというディレクトリ下に 日付のディレクトリが作られ、その中に入れられます。

もし、同じ日に同じ名前のファイルを削除した場合、

~/.Trash/my_trash_box/20140112/file1.1

の様に後ろに番号を付けて管理されます。

これで、戻すときにtrash -b (back)とすると戻すファイルを選ぶ様なモードに 入るのですが、以前はざーっと全て表示させて、番号を入力、みたいな感じでした。 数が多くなるとスクロールバックして確認したりしなくてはいけないので 結構めんどくさい。

ので、 multi_clipboardsd_cl で取り入れた選択画面を導入しました。

trashの新しい選択画面

基本的に multi_clipboardsd_cl で入れたのと同じでjで下を選択、kで上を選択、等。

trash特有のものとしては

  • Enter: 選択ファイル/ディレクトリを元の位置に戻す
  • h : 選択ファイル/ディレクトリを現在のディレクトリにコピー (ゴミ箱内のファイル/ディレクトリはそのまま)
  • d : 選択ファイル/ディレクトリを完全に消去
  • s : 選択ファイル/ディレクトリの詳細(削除日時、現在のゴミ箱内での位置)を表示

こんな感じで使います。

Sponsored Links
  1. これのせいで、Homebrewで自分のFormulaを作ってもtrashと言う名前で登録出来ませんでした。 本家のFormulaを全て無視する様にすれば良いのですが、流石にそれは意味が無いので。

    ので、Homebrewではrcmdnk-trashという名前に。 homebrew-rcmdnkpac をtapしてbrew install rcmdnk-trashでインストール出来ます。

  2. この時、リストとの非対応が生まれてしまうので、 一度trash -c等してリストを整理する必要あります。 (ということに気付いてきちんと整理されるように コマンドをアップデートしました。)

Sponsored Links

« Download Statusbarに変わるもの シェルスクリプトのreadでControl-a等を読み取る: ANSI C quoting »