定制linux垃圾箱

需求

在linux或mac中有时使用rm命令会误删文件,导致恢复过程十分复杂。能否实现一个类似于垃圾箱功能用于暂存文件,然后恢复误删文件

参考资料

  1. ·Linux回收站功能的实现

代码

# 修改rm 命令
alias rm=delete #命令别名,通过delete来实现rm改为mv
alias r=delete
alias rl='ls /home/onwaier/Documents/trash' #rl 命令显示回收站的内容
alias ur=undelfile #ul 命令找回回收站的文件
# 回收文件
undelfile()
{
    if [ ! $# -eq 0 ]; then
        mv /home/onwaier/Documents/trash/$@ ./
    else
        echo "请传入需撤销删除的文件名称,不清楚文件名称请用rl命令查看"
    fi 
}
# 将文件移至trash文件夹下
delete()
{
    if [ ! -d "/home/onwaier/Documents/trash/" ]; then
        mkdir /home/onwaier/Documents/trash 
    fi 
    \mv $@ /home/onwaier/Documents/trash/
}
# 清空回收站
cleartrash()
{
    read "confirm?Are you sure?[Y|N]"
    case $confirm in
        Y | y)
            /bin/rm -rf /home/onwaier/Documents/trash/*;;
        N | n)
            echo "exit";;
        *)
            echo "error choice";;

    esac
}

说明

删除文件时,用rm filename1 finename2将会实现软删除,文件其实被移到你设置的特定路径下(如/home/onwaier/Documents/trash/),恢复时使用ur filename1,查看回收站的内容rl,清空回收站cleartransh

转载请注明:Onwaier‘s Blog » 定制linux垃圾箱