mac和linux使用rm命令行删除,默认是不会放到回收站/废纸篓里面的,容易误删除,尤其是root用户下。利用alias把rm命令重定向到新的shell脚本,把删除的文件移到指定的目录下,可以一定程度缓解误删除的操作。

1.准备shell脚本文件,rm.sh为例

TRASH_DIR='/Users/test/.trash'
for i in $*; do
    STAMP=`date "+%y%m%d%H%M%S"`
    fileName=`basename $i`
    mv $i $TRASH_DIR/$fileName.$STAMP
done

2.alias设置,如果用zsh,则 vim ~/.zshrc

alias rm="sh /Users/test/.tool/rm.sh"

source ~/.zshrc

上面个以普通用户test为例,root用户方法一样。

这种方式可以降低误删操作,但用rm绝对路径(/bin/rm)删除还是可以的,要彻底的话可以修改rm命令源码。