Answers:
我建议安装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编程语言实现的垃圾命令,因此它速度很快,并且在后台进程中触发了垃圾桶声音。这意味着键入命令并运行它会立即退出,因为它不需要等待声音播放。缺点是您需要先编译nimrod然后再编译该程序(没有二进制对不起!)。
PS:说实话,最好的实现是使用我从Nimrod使用的官方API来实现rmtrash,这是简单的Objective-c。
我今天遇到了同样的问题,并检查了上面给出的rmtrash程序。不幸的是,到目前为止,所有可见的解决方案都将文件移动到主目录的.Trash。
另一方面,Finder会根据文件的文件系统的挂载点将其移动到其他-Trash文件夹中。
因此,我能想到的最简单的解决方案(创建于10.5.8。要在较新版本的OS X上进行测试)是:
osascript -e 'tell application "Finder" to delete POSIX file "'FULL FILENAME HERE'"'
这是我为此创建的shell脚本:
#!/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