我习惯于rm别名更安全的东西。
我一直在使用osx-trash,但是一旦升级到Ruby 1.9.2,它就会停止工作。
我trash-cli从Python上了解过,但是我更喜欢将文件移动到OS X中的“废纸folder”文件夹而不是另一个目录的东西。
有没有人有一个好的解决方案?
mv这仍然是您最安全的选择。您可以轻松地在另一个分区Trash(或您喜欢的分区)上创建一个新文件夹,然后mv在其中创建文件。一旦确定可以删除它们,请删除并重新创建该完整文件夹。
我习惯于rm别名更安全的东西。
我一直在使用osx-trash,但是一旦升级到Ruby 1.9.2,它就会停止工作。
我trash-cli从Python上了解过,但是我更喜欢将文件移动到OS X中的“废纸folder”文件夹而不是另一个目录的东西。
有没有人有一个好的解决方案?
mv这仍然是您最安全的选择。您可以轻松地在另一个分区Trash(或您喜欢的分区)上创建一个新文件夹,然后mv在其中创建文件。一旦确定可以删除它们,请删除并重新创建该完整文件夹。
Answers:
对于OSX,您可以使用 safe-rm
brew install safe-rm
您需要执行一个额外的步骤以使其优于默认设置rm-添加符号链接。
echo $PATH
对我来说,我/usr/local/bin:首先拥有与safe-rminstall 相同的目录
将符号链接添加到 safe-rm
ln -s /usr/local/bin/safe-rm /usr/local/bin/rm
要删除并恢复默认设置,rm您可以删除符号链接rm /usr/local/bin/rm
可以在以下位置添加配置文件 /etc/safe-rm.conf
例如:
/private
/Applications
/Developer
/Library
/Network
/System
/Users
/Volumes
/test
测试rm -rf /test它会拒绝从中删除safe-rm.conf
/到不应删除的路径列表中可能会很好,以防止经典rm -fr /
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
}
对我来说rm -i就足够了,因为它会在删除任何文件之前提示您。但是,提供的一些额外安全性safe-rm并不是一个坏主意。
一个简单的aliaslike rm=safe-rm -i 可能就足够了,但是rm -rf将不起作用,因为-i已被覆盖-f。
因此,我们必须确保-i始终紧追其后-f!
安装safe-rm: brew install safe-rm
您仍然可以使用rm,但是RM_BIN在下一步中已修改
编辑您的~/.profile(或bash_profile或其他内容),然后放入以下代码段(其中包含alias和function):
alias rm="rm_i"
function rm_i(){
RM_BIN=safe-rm # you can replace it with regular rm if you like
args=""
files=""
argsDone=0 # to make sure arguments are before the files
for var in "$@"
do
if [[ $var == \-* ]] ; then
if [ $argsDone -eq 1 ] ; then
$RM_BIN # just to show the usage of rm
return
fi
args+=" $var"
else
argsDone=1
files+=" $var"
fi
done
args+=" -i" # Put -i at the end (so rm -rf will not ignore it)
$RM_BIN $args $files
}
最后,logout和login,因此将应用.profile中的更新。注销/登录前请勿使用它!
-rf与正则表达式一起使用。rm -rf 无需询问每个文件/文件夹,则仍然可以使用/bin/rm -rf(或safe-rm -rf是否已安装)。rm -rf 或 rm * ;)
rm,而要习惯mv files/to/be/deleted ~/.Trash。它在整个系统中都是安全且一致的。