回答:
ファイルをゴミ箱に移動すると、OS X は「Put back」情報で.DS_Store
ファイルを更新します~/.Trash
。(詳細については、この質問を参照してください)
これを更新.DS_Store
するには、ターミナルのゴミ箱にファイルを移動するときにファイルも更新する必要があります。
Ruby gem osx-trashをインストールすることをお勧めします。
sudo gem install osx-trash
Usage: trash [OPTIONS] <file> [<file> ...]
trash [-e | --empty]
trash [-l | --list]
Specific options:
-e, --empty Empty the trash
-l, --list List items in the trash
-h, --help Show this message
-v, --version Show version
Manipulate to the Finder's trash.
bash: trash: command not found
MacOSX SDKには、機能FSPathMoveObjectToTrashSync
と関連があります。Python(またはその他の)スクリプトを簡単に記述できるはずです。
編集:コーディングしただけです。ここで見つけることができます:rm-trash.py。
代替案を見て、次のことがわかりました。
そこで、Nimrodプログラミング言語で実装された独自のtrashコマンドを作成しました。そのため、バックグラウンドプロセスでゴミ箱の音がトリガーされます。つまり、コマンドを入力して実行すると、サウンドの再生を待つ必要がないため、すぐに終了します。短所は、nimrodをコンパイルしてからこのプログラムをコンパイルする必要があるということです(バイナリーは申し訳ありません!)。
PS:正直なところ、最良の実装は、私がNimrodから使用している公式のAPIを使用したrmtrashの実装です。これは単純なObjective-Cです。
今日も同じ問題が発生し、上記のrmtrashプログラムもチェックしました。残念ながら、これまでに見られたすべてのソリューションは、ファイルをホームディレクトリの.Trashに移動します。
一方、Finderはファイルのファイルシステムのマウントポイントに基づいて、異なる-Trashフォルダーに移動します。
したがって、私が思いつく最も簡単な解決策(10.5.8で作成。OSXの新しいバージョンでテストする)は次のとおりです。
osascript -e 'tell application "Finder" to delete POSIX file "'FULL FILENAME HERE'"'
これは、私が作成したシェルスクリプトです。
#!/bin/bash
declare -a files
for f in "$@" ; do
if [ -r "$f" ] ; then
case "$f" in
/*) ;;
*) f="$( pwd )/$f" ;;
esac
files=("${files[@]}" "$f")
else
echo "Can't find '$f'" >&2
fi
done
if [ ${#files[@]} -gt 0 ] ; then
osascript -e '
on run argv
repeat with f in argv
set x to (POSIX file f) as string
tell application "Finder" to delete x
end
end
' "${files[@]}" > /dev/null
fi