Emacs, Mac OS X and Unix: コマンドラインからゴミ箱に捨てるシェルスクリプト
id:masutaka26から教えて頂きました。
ありがとうございます。
やっていることはAppleScript を内部で使うシェルスクリプトの作成なので、
まずはシェルスクリプトのパスを通すところから。
1. シェルスクリプトのパスを通す
.zshrcにこの記述を追加する。
export PATH=~/bin:$PATH
2. シェルスクリプト作成
上記リンクからまるまるパクリです。
trash
ゴミ箱(~/.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
このコマンドの利点は、コマンド実行直後なら、Finderでcommand+zを実行すると
ゴミ箱に捨てたファイルが元に戻ることだろう。
ワイルドカードやパイプも使えるかもしれないね☆
reveal
Finder で「オリジナルを表示」する
#!/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
getinfo
Finder で「情報を見る」
#!/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
ファイル名はtrash、reveal、getinfoとし、
~/username/binに保存する。
保存したファイルは、chmodを利用して実行権限を付与する。
以上により、これらのシェルスクリプトをコマンドとして実行出来る。
使い方はターミナルから
% trash hoge.txt
% reveal hoge.txt
% getinfo hoge.txt
ね、便利かな?