我习惯于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-rm
install 相同的目录
将符号链接添加到 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
并不是一个坏主意。
一个简单的alias
like 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
。它在整个系统中都是安全且一致的。