# Linux 修改 rm 命令防止误删操作,增加回收站功能

在Linux删除文件这种事经常会做,rm -rf,但是有时候手滑一下rm -rf * 删除不该删除的文件就麻烦,万一再多抖一下 rm -rf /* 想想就怕。为了防止手滑,需要禁用或者更改rm命令,修改方法各种各样,这里我选了一个我比较喜欢的方案,在这里记录一下。

实际就是重新定义 rm ,每次rm实际上执行的是 mv 命令,会将文件移动到回收站目录 ~/.trash

别名按照个人习惯自定义即可

保存完毕之后需要 source .bashrc

使用方法: rm –删除文件 cattrash –查看回收站文件 unrm –恢复文件 cleartrash –清空回收站

需要添加到 .bashrc 的命令如下,贴到 .bashrc 最后面即可:

# 初始化回收站目录
mkdir -p ~/.trash
# 设置别名
alias rm=trash
alias cattrash='ls ~/.trash'
alias unrm=undelfile
alias cleartrash=cleartrash
# 从回收站恢复指定文件到当前目录
undelfile()
{
    mv -i ~/.trash/$@ ./
}
# 移动文件到回收站
trash()
{
    mv $@ ~/.trash/
}
# 清空回收站
cleartrash()
{
    read -p "清空回收站? [y/n]" confirm
    [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}