外付け HDD の場合はゴミ箱のパスが違うし、移動先に同じファイル名がある場合の処理とか、結構面倒くさい。
面倒くさいので全部 Finder に丸投げ、ということで AppleScript 経由でゴミ箱に捨てるスクリプトがこちら。
Finder で「ゴミ箱に入れる」
trash
#!/bin/sh # Trash items. # Usage: trash [files] # Backslashes and doublequotes must be escaped. # replace \ --> \\ # replace " --> \" CWD=`pwd | sed -E -e 's/\\\\/\\\\\\\\/g' -e 's/"/\\\\"/g'` osascript - "$@" <<EOF on run argv set itemArray to {} repeat with i in argv if first character of i is not "/" then set i to "$CWD" & "/" & i end if set itemArray to itemArray & (i as POSIX file as Unicode text) end repeat tell application "Finder" delete itemArray end tell end run EOF
動作確認:Mac OS X 10.6 (osascript の引数処理の関係で Mac OS X 10.4 以上が必要と思われます。)
使う場合、実行権限を付けて PATH の通った所へファイルを置いてください。
使い方の例: hoge.txt fuga.txt を捨てる
trash hoge.txt fuga.txt
AppleScript を使う利点としては、このスクリプトでゴミ箱に捨てた直後ならば、 Finder で「取り消す Cmd-Z」ができる。 Mac OS X 10.6 からはゴミ箱内の項目を「戻す」ことができるので、それにも対応している。欠点としては動作が遅い。
以下はおまけの Finder で「オリジナルを表示」と「情報を見る」のスクリプト。
Finder で「オリジナルを表示」
reveal
#!/bin/sh # Reveal in Finder. # Usage: reveal [files] CWD=`pwd | sed -E -e 's/\\\\/\\\\\\\\/g' -e 's/"/\\\\"/g'` osascript - "$@" <<EOF on run argv set itemArray to {} repeat with i in argv if first character of i is not "/" then set i to "$CWD" & "/" & i end if set itemArray to itemArray & (i as POSIX file as Unicode text) end repeat tell application "Finder" activate reveal itemArray end tell end run EOF
Finder で「情報を見る」
getinfo
#!/bin/sh # Show information window in Finder. # Usage: getinfo [files] CWD=`pwd | sed -E -e 's/\\\\/\\\\\\\\/g' -e 's/"/\\\\"/g'` osascript - "$@" <<EOF on run argv repeat with i in argv if first character of i is not "/" then set i to "$CWD" & "/" & i end if set i to (i as POSIX file as Unicode text) tell application "Finder" open information window of item i end tell end repeat tell application "Finder" activate end tell end run EOF
Emacs の Dired からゴミ箱に捨てる方法はこちら。 Dired からゴミ箱に捨てる、情報を見る、 Finder で表示。