後悔しない最高のゴミ箱環境を模索する

ゴミ箱は、GUIなOS環境の一つの象徴である。ゴミ箱のないデスクトップなんて、ガリのない寿司みたいな物足りなさを感じる。ゴミ箱があるからこそ、デスクトップにリアルな親近感が湧くのだ。どうして、こんなにもデスクトップのゴミ箱に愛着してしまうのか?

デスクトップのゴミ箱は、不要なファイルを捨てるところである。まあ捨てるといっても、ゴミ箱の実体は「~/.Trash/」という不可視フォルダであり、実際は不要なファイルをそこへ移動するだけである。そして、移動しただけではファイルは削除されず「~/.Trash/」に存在し続ける。そこで「ゴミ箱を空にする」という操作をして初めて、ゴミ箱のファイルは削除される。
GUI以前のコマンドラインには、ゴミ箱という考え方はなかった。(と思う*1)ファイルやフォルダを削除するにはrmコマンドを使っていた。そのまま使えば、rmを実行した瞬間にファイルは削除される。あるいは、-iオプションによって、削除する前に確認メッセージも表示できるが、yを選択した瞬間にファイルは削除される。
だから、ゴミ箱というフォルダに移動して一時的に保存しておくという考え方は、画期的なことだと思った。なぜなら、間違って必要なファイルを捨ててしまうこともあるからだ。rmコマンドでは削除を取り消せないが、ゴミ箱に移動しただけなら、必要なファイルを元の場所に戻せば救われるのである。この辺は、リアルな世界のゴミ箱の機能に近い。(ゴミ箱をあさった経験は、少なからず誰しもあると思う)

デスクトップのゴミ箱の基本的な仕様

不要なファイルを一時保存・戻す機能
  • ファイルやフォルダをゴミ箱に捨てると、「~/.Trash/」不可視フォルダに移動される。
  • しかし、工夫しないとファイル名称が重複してしまう可能性がある。
  • だから、ゴミ箱に同じファイル名が既に存在する時、後から捨てたファイルの名称には時間情報が付加される。
名称未設定フォルダ 14-19-12
名称未設定フォルダ
  • 「名称未設定フォルダ 14-19-12」は、14時19分12秒に捨てたファイルという意味である。
  • 起動ディスク以外(外付けHDなど)でファイルを捨てた時も「~/.Trash/」フォルダに移動してしまうと、ファイルは移動でなく、コピーになってしまう。
  • そこで起動ディスク以外では、そのボリューム直下に「/Volumes/ボリューム名/.Trashes/ログインユーザーID/」という不可視フォルダを作って、そこに移動する。
  • ファイルは、本における目次と本文のように管理されていて、ディレクトリ(フォルダ階層)は目次で、ファイルの内容は本文である。
  • 移動とコピーの違い。移動は目次を書き換えるだけ。コピーは新規に目次と本文を複製する。
    • 不要なファイルなのに、コピーするのは無駄である。
    • サイズが大きいとコピー処理に永遠と時間がかかる。
    • もしかしたら、起動ディスクの残量が少なくて、コピーできないかもしれない。
  • ゴミ箱を開くという行為は、「~/.Trash/」とマウントされている「/Volumes/ボリューム名/.Trashes/ログインユーザーID/」以下に存在する、すべてのファイルを一覧を表示することである。
  • ゴミ箱を空にするという行為は、「~/.Trash/」とマウントされている「/Volumes/ボリューム名/.Trashes/ログインユーザーID/」以下に存在する、すべてのファイルを削除することになる。
  • ゴミ箱にあるファイルを選択してcommand-deleteすると、「戻す」のショートカット操作となる。
  • 「戻す」とは、ゴミ箱のファイルを捨てる直前に存在していた場所に「戻す」操作である。

こうして見ると、ゴミ箱は単なるフォルダではなく、ゴミ箱らしく機能するよう随所に工夫があることに気付く。

TimeMachineのバックアップから除外される
  • ゴミ箱に入っているファイルは、TimeMachineのバックアップからは除外される。
  • その他にも、OSX標準でTimeMachineのバックアップから除外される項目は、以下のplistで確認できる。
    • /System/Library/CoreServices/backupd.bundle/Contents/Resources/StdExclusions.plist
  • もちろん、任意のボリュームやフォルダ、ファイルさえも、バックアップ対象から除外できる。
    • システム環境設定 >> TimeMachine >> オプション >>「これらの項目をバックアップから除外:」に追加するのだ。

困った習慣

  • このように、ゴミ箱にはすぐに削除されない、という優れた利点がある。
  • にもかかわらず、人はよくゴミ箱をきれいさっぱり、空にしたがる。
  • リアルな世界のゴミ箱でさえ、一日の終わりに1回だけゴミ出しするだけなのに。
  • デスクトップのゴミ箱だと、即削除してしまう人もいる。(以前の自分も含めて)
  • なぜ、そんなにもゴミ箱を空にしたいのだろう?考えてみた。
    • 操作が簡単だから。(リアルな世界のゴミ箱にはない手軽さ)
      • ゴミ箱を開いて、空にするボタンを押す。
      • 「ファイル」メニューからゴミ箱を空にする。
      • ショートカットshift-command-deleteで、警告を表示してから削除。
      • ショートカットでshift-option-command-deleteで、警告なしで即削除。
    • ゴミ箱アイコンにゴミがたまっているように見えるから。
      • ゴミ箱にファイルが一つでも入っていると、ゴミ箱アイコンは紙屑が溜まった状態に変化する。
      • リアルな世界の経験から、紙屑が溜まったアイコンだと気になる。心理的に空っぽのアイコンにしたくなる。
    • 削除した時の音が快感。
      • ゴミ箱を空にする時には、数少ない効果音が発せられる。(グシャ、グシャ、グシャと紙を丸めた?ような音)
      • その音が、思い切りゴミを捨てたような感覚を呼び覚まして、結構気持ちいい。

ゴミ箱を空にする時の気持ち良さがあって、それを手軽に実行できてしまうところに、無駄に繰り返し空にしてしまうのかも。

  • そして、いずれは必ず経験する。必要なファイルなのに削除してしまった、という後悔...。
  • そんな経緯で、自分はゴミ箱を決して空にしない、と決心したのであった。

理想的なゴミ箱を想像する

では、ゴミ箱を空にする操作というのは、理想的にはどんなタイミングで行うべきなのだろう?

  • ゴミ箱の利点を最大限に生かすなら、ボリュームに十分な空き容量を確保できている間は、ファイルをそのまま溜め込むべきである。
  • しかし、ゴミを溜め込むという感覚は、精神衛生上あまり良くない。
  • そこで、ゴミ箱を空にした時、今までのようにファイルを削除するのではなく、さらに不可視のフォルダに移動するのはどうだろう?
  • 役割としては「処分場」のような意味合いになる。
  • その処分場フォルダでは、ボリュームに十分な空き容量を確保できている間は、そのままファイルを保存する。
  • ボリュームの空き容量が不足してきたら、削除した日時が古いファイルから順に自動的に削除するようにする。
  • ところで、ボリュームに十分な空き容量があったとしても、削除したいファイルの中には、とにかく人目に触れる前に素早く削除したいファイル、というのもあるかもしれない。
  • 処分場フォルダでは古いファイルから順に自動的に削除されるのだが、選択したファイルを手動で削除する選択肢も必要である。

こうして見ると、処分場フォルダの機能というのは、どうもTimeMachineに似ている気がする。

  • バックアップディスクが満杯になると、削除されている古いファイルから順に削除される。
  • バックアップディスクから特定のバックアップを完全に削除することもできる。
    • TimeMachineに入って、削除したいXXXXファイルを右クリック、「すべてのXXXXのバックアップを削除」を選択すればOK。

いっそのこと、OSXで管理するファイルシステム全体が履歴管理されてしまえば良いのに、と思ってしまう。そうすれば、間違って上書きしてしまったファイルも含めて、すべてのファイルを失う不安から解放されそうな気がする。

  • ちなみに、Dropboxは既に履歴管理されていて、上書きしたファイル、削除したファイルの履歴を検索して復元可能だったりする。


そうなった時、ゴミ箱は不要になるのかもしれない。

少しでも理想に近づける工夫

ゴミ箱を空にしない努力
  • Finderメニューや shift-command-delete 等で間違ってゴミ箱を空にしてしまわないように、
  • Finder 環境設定 >> 詳細 で「ゴミ箱を空にする前に警告を表示」をチェック入にしている。
削除日でソートする
  • いつの時点でゴミ箱に入れたか?(不要と判断したか)という情報は、ゴミ箱でファイルを探す検索キーになったり、完全に削除してしまう基準の日付になったりする。
  • ところが、OSXのゴミ箱では、ゴミ箱に入れた日時が表示されない。
  • 作成日時や変更日時、アクセス日時、ステータス変更日時は、OSやFinderが管理するファイル情報として持っているのに...。
  • 一方Windowsでは、ゴミ箱が削除日というのを持っており、ゴミ箱に入れた日付が記録されている。使い勝手がとってもいい!
  • OSXのゴミ箱にも削除日が欲しいと思ったが、簡単には実現できそうにない...。
  • そう思って考えていたら、閃いた。
  • Dockには追加日がある。~/.Trash/フォルダをDockに登録しておけば、追加日が削除日の代わりになりそうな気がした。
  • 但し、追加日は見えない。追加日でソートされるだけ。
  • それでも無いよりはマシな気がしたので、~/.Trash/をDockに追加しておいた。(追加日情報はどこに保存されているのだろう?)
削除日を記録する
  • 直近にゴミ箱に入れたファイルを参照するには、上記のような追加日順のソートで十分かもしれない。
  • しかし、ゴミ箱に入れて1年以上経過したものは削除しよう!なんて運用をしたくなると、やはりどうしても日時情報としての削除日が欲しくなる。
  • そこで、OSXUNIXとして備えているタイムスタンプをもう一度見直してみた。
    • アクセス日時(atime)......読み込んだ時更新される。
    • 変更日時(mtime)...... 書き込んだ時更新される。
    • ステータス変更日時(ctime)...... mtimeの時&inodeデータを更新した時更新される。
  • 上記タイムスタンプの中で、ステータス変更日時(ctime)について、今までほとんど意識せずに利用していた。(そんなタイムスタンプがあったのか?と...。)
  • であれば、ステータス変更日時(ctime)をゴミ箱に移動したタイミングで更新してしまえば、削除日として利用できるのではないかと考えた。
  • そんな使い方してしまって良いのか若干躊躇したが、今までほとんど利用していなかった日時だし、ゴミ箱に入れる不要ファイルだし、問題ないと判断してしまった。
    • ctimeの活用例とか、削除日の代替としてしまうデメリットとか、是非、詳しい方にコメント頂けると嬉しいです。
  • アクセス日時(atime)・変更日時(mtime)をそのままに、ステータス変更日時(ctime)のみ更新するには、inodeデータ*2を修正すれば実現する。
  • いろいろ試してみると、OSX環境ではFinderでファイルのロックフラグを修正する方法が手軽な気がして、AppleScriptで以下のようにやってみた。
    • 以下のスクリプトを /Library/Scripts/Folder Action Scripts/update_change_time.scpt として保存した。


on adding folder items to this_folder after receiving added_items
tell application "Finder"
repeat with f in (added_items) set f's locked to not f's locked
set f's locked to not f's locked
end repeat
end tell
end adding folder items to

  • スクリプトメニュー >> Folder Actions >> Configure Folder Actions を起動して、~/.Trashにフォルダアクションを設定した。

  • これで起動ディスクのゴミ箱については、ゴミ箱に捨てたタイミングで、ステータス変更日時(ctime)が更新されるようになった。
  • もし常時接続している外部HD(ハードディスク)があれば、そのHDのゴミ箱にもフォルダアクションを設定した方が良いかも。
    • /Volumes/ボリューム名/.Trashes/ログインユーザーID/
ゴミ箱を削除日順にリスト表示する
  • せっかく削除日として記録されるようになっても、残念ながら、Finderではステータス変更日時(ctime)を活用できない...。
  • でも、UNIXコマンドならステータス変更日時(ctime)を自在に活用できる。
  • 各ボリュームのゴミ箱の内容をステータス変更日時(ctime)順に一覧表示するエイリアスコマンド lstrash を設定してみた。
# エイリアスコマンド lstrash を定義するよ
$ alias lstrash='ls -AlcTt ~/.Trash /Volumes/*/.Trashes/`id -u`'

# 各ボリュームのゴミ箱の内容をステータス変更日時(ctime)順にリスト表示するよ
$ lstrash
/Users/zari/.Trash:
total 100664
-rw-------@ 1 zari  staff    21508 12 29 16:59:02 2010 .DS_Store
-rw-r--r--  1 zari  staff  2088635 12 29 16:58:38 2010 DSC_0034.JPG
-rw-r--r--@ 1 zari  staff   132179 12 29 16:58:38 2010 IMG_3965.jpg
-rw-r--r--@ 1 zari  staff   123464 12 29 16:58:38 2010 IMG_3981.jpg
-rw-r--r--@ 1 zari  staff  1252673 12 26 14:24:45 2010 DSC_1102.JPG
drwxr-xr-x  3 zari  staff      102 12 26 04:07:22 2010 名称未設定フォルダ 04-07-21/
-rw-r--r--@ 1 zari  staff  5263822 12 26 04:06:35 2010 TableTennis 3.3.ipa
drwxr-xr-x  2 zari  staff       68 12 26 04:06:35 2010 名称未設定フォルダ/
drwxr-xr-x  2 zari  staff       68 12 26 04:06:35 2010 名称未設定フォルダ 2/
drwxr-xr-x  2 zari  staff       68 12 26 04:06:35 2010 名称未設定フォルダ 3/
-rw-r--r--  1 zari  staff   381122 12 26 04:06:34 2010 101224-0001.png
-rw-r--r--@ 1 zari  staff  1268374 12 26 04:06:34 2010 AirVideoFree 2.4.2.ipa
-rw-r--r--@ 1 zari  staff   319994 12 26 04:06:34 2010 CM Movie 1.mov
-rw-r--r--@ 1 zari  staff   345969 12 26 04:06:34 2010 CM Movie 2.mov
-rw-r--r--@ 1 zari  staff   340724 12 26 04:06:34 2010 CM Movie 3.mov
-rw-r--r--@ 1 zari  staff  5187669 12 26 04:06:34 2010 Echofon 3.1.7.ipa

/Volumes/Macintosh SL/.Trashes/501/:
total 2472
-rw-------@ 1 zari  staff    12292 12 23 08:46:44 2010 .DS_Store
-rw-r--r--@ 1 zari  staff     1509 12  9 08:41:10 2010 mdls :Users:zari:Desktop:炊飯土鍋_ほんわかふぇ_取扱説明書 2 08-43-41.pdf
-rw-r--r--@ 1 zari  staff     1509 12  9 08:40:02 2010 mdls :Users:zari:Desktop:炊飯土鍋_ほんわかふぇ_取扱説明書 2 08-41-03.pdf

/Volumes/SL pure/.Trashes/501/:
total 16
-rw-------@ 1 zari  staff  6148 12 17 16:13:50 2010 .DS_Store
削除日でゴミ箱をフィルタリングする
  • それから、削除日の条件でファイルを手軽に抽出できれば便利かもしれない。
  • 各ボリュームのゴミ箱の内容をステータス変更日時(ctime)でフィルタリングするエイリアスコマンド trash も設定しておいた。
# エイリアスコマンド trash を定義するよ
$ alias trash='find ~/.Trash /Volumes/*/.Trashes/`id -u` -maxdepth 1 -mindepth 1'

# ゴミ箱に入れてから3日以内のファイルを抽出するよ
$ trash -ctime -3
/Users/zari/.Trash/.DS_Store
/Users/zari/.Trash/DSC_0034.JPG
/Users/zari/.Trash/IMG_3965.jpg
/Users/zari/.Trash/IMG_3981.jpg

# ゴミ箱に入れてから1年以上経過したファイルを抽出するよ
$ trash -ctime +365

# ゴミ箱に入れてから1年以上経過したファイルを抽出、削除するよ
$ trash -ctime +365 -exec rm -fR {} \;
すぐに削除しない
  • 「この操作は取り消しできません。」と警告してから削除するのも一つの方法だけど、
  • 警告なしで、時間差で削除するというのも良さそうな気がしてきた。
  • Tmp系のフォルダに移動することにすれば、次回の再起動時に削除される扱いになる。
  • それまでに間違って削除したと気付けば、救われる。
  • 警告するよりもスマートだし、完全に削除されるまで時間的猶予があるのもいい感じ。
# ユーザ別の一時フォルダを作って、
$ TRASH_DIR="${TMPDIR}Trash_`date '+%Y%m%d%H%M%S'`"
$ mkdir $TRASH_DIR

# ゴミ箱に入れてから1年以上経過したファイルを抽出、ユーザ別の一時フォルダへ移動するよ
$ trash -ctime +365 -exec mv {} $TRASH_DIR \;
  • 但し、起動ディスク以外のゴミ箱では、ボリューム間のコピー&削除になってしまう。もう少し工夫が必要。

ゴミ箱を削除日を基準に操作するAppleScript

  • ctimeを基準に自在に操作するにはコマンドから処理するしかない。
  • しかし、上記のようなコマンドは数ヶ月もすると完全に忘れる...。
  • そこで、コマンドを忘れても使いこなせるAppleScriptにしておくのだ。
ゴミ箱を削除日順に表示する


--ゴミ箱を削除日順に表示する
tell application "Terminal"
activate
"ls -AlcTt ~/.Trash /Volumes/*/.Trashes/`id -u`;\\"
result & return & "# ゴミ箱を削除日順に表示します。"
do script result
end tell

ゴミ箱に捨てて3日以内のファイルを抽出する


(* * ゴミ箱に捨てて3日以内のファイルを抽出する
* 削除日(ctime)を基準に抽出する
*)
activate
"---------- 抽出します ----------
ゴミ箱に捨てて3日以内の項目
-ctime -3

ゴミ箱に捨てて3日以上経過した項目
-ctime +3"
display dialog result default answer "-ctime -3" with icon 1
set option_ctime to result's text returned

try
do shell script "ls /Volumes/*/.Trashes/`id -u`"
set option_dir to " ~/.Trash /Volumes/*/.Trashes/`id -u`"
on error
set option_dir to " ~/.Trash"
end try

tell application "Terminal"
activate
"find" & option_dir & " -maxdepth 1 -mindepth 1 " & option_ctime & ";\\"
result & return & "# ゴミ箱に捨てて" & my text_from_ctime(option_ctime) do script result
end tell

on text_from_ctime(option_ctime) set my text item delimiters to space
set ctime to option_ctime's text items's item 2
set my text item delimiters to ""
set mark to ctime's item 1
set num to ctime's items 2 thru -1 as text
if mark = "-" then
num & "日以内の項目"
else if mark = "+" then
num & "日以上経過した項目"
end if
end text_from_ctime

ゴミ箱に捨てて1年以上経過したファイルを削除する


(* * ゴミ箱に捨てて1年以上経過したファイルを削除する
* 削除日(ctime)を基準に移動・削除する
* ~/.Trash/ については、$TMPDIR/年月日時分秒/* へ移動(mv)する
* /Volumes/*/.Trashes/`id -u`/ については、すぐ削除(rm)する
*)
activate
"---------- 削除します ----------
ゴミ箱に捨てて1年以上経過した項目
-ctime +365"
display dialog result default answer " -ctime +365" buttons {"キャンセル", "削除"} with icon 1
set option_ctime to result's text returned

set empty_trash_dir to do shell script "echo \"${TMPDIR}empty_trash_`date '+%Y%m%d%H%M%S'`\""
set option_rm to " -exec rm -fR {} \\;"
set option_mv to " -exec mv {} " & empty_trash_dir's quoted form & " \\;"
set button_name to "削除"
set trash_dir to " ~/.Trash"

try
do shell script "ls /Volumes/*/.Trashes/`id -u`"
set trashes_dir to " /Volumes/*/.Trashes/`id -u`"
activate
"この操作には取り消しできない操作が含まれます。
何が削除されるか、確認できていますか?"
display dialog result buttons {"キャンセル", "対象を確認", "削除"} set button_name to result's button returned
on error err_msg number err_num
if err_num = 1 then
set trashes_dir to ""
else
error err_msg number err_num
end if
end try

do shell script "find" & trash_dir & space & trashes_dir & " -maxdepth 1 -mindepth 1 " & option_ctime & ";\\"
if result is not "" then
tell application "Terminal"
activate
"find" & trash_dir & space & trashes_dir & " -maxdepth 1 -mindepth 1 " & option_ctime & ";\\"
result & return & "# 以下のファイルやフォルダが削除対象です。"
if button_name = "削除" then
result & return & "mkdir " & empty_trash_dir's quoted form
result & return & "find" & trash_dir & " -maxdepth 1 -mindepth 1" & option_ctime & option_mv & ";\\"
result & return & "# ホームのゴミ箱(~/.Trash/)の削除対象を、一時フォルダ-Tmp-へ移動(mv)しました。"
if trashes_dir is "" then
result
else
result & return & "find" & trashes_dir & " -maxdepth 1 -mindepth 1" & option_ctime & option_rm & ";\\"
result & return & "# ボリュームのゴミ箱(/Volumes/*/.Trashes/`id -u`/)の削除対象を、削除(rm)しました。"
end if
result & return & "open " & empty_trash_dir's quoted form & ";\\"
result & return & "# 移動先の一時フォルダ-Tmp-を開きました。"
else if button_name = "対象を確認" then
result
end if
do script result
end tell
else
activate
"削除対象はありません。"
display dialog result buttons {"OK"} giving up after 5
end if

ゴミ箱を空にする時の移動先-Tmp-を開く


--ゴミ箱を空にする時の移動先-Tmp-を開く
do shell script "open $TMPDIR"

すぐに削除しないAutomatorサービス


on run {input, parameters} (* Your script goes here *)
my alert_trash_can_not_delete(input) tell application "Finder"
if ":.Trash:" is in ((input's item 1) as text) or ":.Trashes:" is in ((input's item 1) as text) then
my alert_this_operation_can_not_undo() move my with_startup_disk(input) to my tmp_trash() my rm(my without_startup_disk(input)) my rm_sound() else
delete input
end if
end tell
end run

--間違ってゴミ箱を削除しようとしている場合の警告
on alert_trash_can_not_delete(alias_list) tell application "Finder"
if alias_list's item 1's name is ".Trash" then
beep
activate
"ゴミ箱は削除できません。"
display dialog result buttons "キャンセル" default button 1 giving up after 5 with icon 2
error -128 --強制終了
end if
end tell
end alert_trash_can_not_delete

--この操作は取り消しできない警告
on alert_this_operation_can_not_undo() beep
activate
"選択中のファイルを完全に削除します。
この操作は「取り消し」できません。"
display dialog result default button 1 with icon 0
end alert_this_operation_can_not_undo

--起動時に削除される -Tmp-/Trash_年月日秒/ フォルダを作って返す
on tmp_trash() tell application "Finder"
if my os_version() < "10.7" then
set _tmp_ to ((path to temporary items)'s folder as text) & "-Tmp-" as alias
else
set _tmp_ to ((path to temporary items)'s folder as text) as alias
end if
make new folder at _tmp_ with properties {name:"Trash_" & my datetime(current date)} result as alias
end tell
end tmp_trash

on os_version() do shell script "defaults read /System/Library/CoreServices/SystemVersion ProductUserVisibleVersion"
end os_version

--日時を数字の羅列で返す
on datetime(d) --"" & d's year & (d's month as number) & d's day & d's time--time=0時からの積算秒数
"" & d's year & (d's month as number) & d's day & d's hours & d's minutes & d's seconds
end datetime

--起動ディスクのaliasだけ返す
on with_startup_disk(alias_list) set res to {} repeat with f in alias_list
if (f as text) begins with (path to startup disk as text) then
set res's end to f
end if
end repeat
res
end with_startup_disk

--起動ディスクではないaliasだけ返す
on without_startup_disk(alias_list) set res to {} repeat with f in alias_list
if (f as text) does not start with (path to startup disk as text) then
set res's end to f
end if
end repeat
res
end without_startup_disk

--rmコマンドを実行する
on rm(alias_list) if alias_list's number > 0 then
tell application "Terminal"
activate
--do script "rm -iR" & my args(alias_list) --削除する前に確認する( y で削除)
do script "rm -fR" & my args(alias_list) --確認なしにすぐ削除する
end tell
end if
end rm

--alias_listcommand引数に変換する
on args(alias_list) set args to {} repeat with f in alias_list
set args's end to " \\" & return & f's POSIX path's quoted form
end repeat
args as text
end args

--削除した時の効果音
on rm_sound() "afplay /System/Library/PrivateFrameworks/ScreenReader.framework/Versions/A/Resources/Sounds/MouseDrag.aiff"
do shell script result
end rm_sound

ゴミ箱の怪獣

  • かつて、MacOSのゴミ箱には怪獣が住んでいた。


  • 無駄かもしれないけど、こうゆうアプリに癒されていた頃が懐かしい。


果たして、これで後悔しない最高のゴミ箱になり得るのかどうか...。なんだか優柔不断に削除を先送りするゴミ箱のような気がしてきた。削除を先送りすると同時に、ゴミ箱に捨てる時の判断の精度を上げげることも重要だ。
当初の理想としては、Mail.appのようなゴミ箱を想像していた。Mail.appのゴミ箱のように、Finderでも完全に消去するタイミングを自由に設定できれば良いのに。さらに進んで、メディアの空き容量をチェックして、設定した空き容量以下になったら、古い削除日から順に自動的に消去してくれたら良いのに。

*1:もしかしたら、ファイル名の末尾にチルダ「~」や「.bak」を付加するのは、ゴミ箱の思想に近いのかもしれない。

*2:Finderの情報を見るから編集可能な情報