改造RM命令,增加回收站防止误删除

Published: Tags: SHELL LINUX

由于网上找到的代码和方法有点繁杂,所以重新造了个轮子~

放到 /etc/bashrc 即可(不同发行版配置,路径请自行修改)

alias rm='remove2trash'; remove2trash () 
{
    datetime=$(date +'%s');
    trash="/tmp/.trash.$(whoami)";

    mkdir -m 700 -p "$trash" && touch "$trash";
    find "$trash" -maxdepth 1 -mtime +7 |xargs /bin/rm -rf;

    for src in "$@"; do
        [[ "$src" =~ ^"-" ]] && continue;
        srcpath=$(cd "$(dirname "${src}")"; pwd |tr '/' '|');
        dst="${trash}/${datetime}${srcpath}|$(basename "$src")";
        mv "$src" "$dst" && touch "$dst";
    done
}