重定向 rm 命令以嫁接为 mv 命令,相当于给 Linux 系统定制了一个回收站。
实现方式如下:
添加bash脚本并写入
### 重定义rm命令 ###
# 定义回收站目录
trash_path= '~/.trash'
# 判断 $trash_path 定义的文件是否存在,如果不存在,那么就创建 $trash_path.
if[ ! -d $trash_path ]; then
mkdir -p $trash_path
fi
# 定义别名:使用 rm 就调用 trash
aliasrm=trash
# 使用 rl 就调用 'ls ~/.trash'
# 如果更改上面的回收站目录这里的目录也需要修改
aliasrl= 'ls ~/.trash'
# 使用 unrm 就调用 restorefile,需要在删除目录的父目录下执行
aliasunrm=restorefile
# 使用 rmtrash 就调用 claearteash
aliasrmtrash=cleartrash
# 恢复文件的函数
restorefile()
{
mv -i ~ /.trash/$@ ./
}
# 删除文件的函数
trash()
{
mv $@ ~ /.trash/
}
# 清空回收站的函数
cleartrash()
{
read -p "确定要清空回收站吗?[y/n]"confirm
[ $confirm == 'y'] ||[ $confirm == 'Y'] && /bin/rm-rf ~ /.trash/*
}
最后将上述脚本写入 /etc/bashrc,并立即执行命令 source /etc/bashrc 即刻生效。