安全替代 OS X `rm`?

dis*_*dng 10 trash rm macos

我习惯于必须rm为更安全的东西添加别名。

我一直在使用osx-trash,但是一旦我升级到 Ruby 1.9.2,它就会停止工作。

trash-cli从 Python知道,但我更喜欢将文件移动到 OS X 中的垃圾文件夹而不是另一个目录的东西。

有没有人有好的解决方案?

Dav*_*mas 9

对于 OSX,您可以使用 safe-rm

brew install safe-rm
Run Code Online (Sandbox Code Playgroud)

您需要做一个额外的步骤来更喜欢它而不是默认rm- 添加一个符号链接。

echo $PATH
Run Code Online (Sandbox Code Playgroud)

对我来说,我/usr/local/bin:首先拥有与safe-rminstall相同的目录

将符号链接添加到 safe-rm

ln -s /usr/local/bin/safe-rm /usr/local/bin/rm
Run Code Online (Sandbox Code Playgroud)

要删除和恢复默认值,rm您可以删除符号链接rm /usr/local/bin/rm

配置文件可以添加在 /etc/safe-rm.conf

例如:

/private
/Applications
/Developer
/Library
/Network
/System
/Users
/Volumes
/test
Run Code Online (Sandbox Code Playgroud)

rm -rf /test它测试将拒绝从safe-rm.conf


Lri*_*Lri 4

hasseg.org/trash是一个 Objective-C 实用程序,类似于osx-trash

我编写了一个 shell 函数,它不会像以前那样覆盖文件mv * ~/.Trash。但它总是将项目移动到启动卷。

trash() {
    for f in "$@"; do
        bn=$(basename "$f")
        while [ -e ~/.Trash/"$bn" ]; do
            bn="$bn $(date +%H.%M.%S %p)"
        done
        mv "$f" ~/.Trash/"$bn"
    done
}
Run Code Online (Sandbox Code Playgroud)