rmtomv

2022-03-16 10:30:32 浏览数 (1)

Linux下是不存在回收站的概念,如果文件被误删了就后悔不及了。通过alias命令将rm映射为mv建立一个虚拟回收站

先建立一个回收站文件夹

代码语言:javascript复制
# mkdir ~/.Trash

建立脚本

代码语言:javascript复制
# vim /usr/bin/rmtomv

写入以下内容

代码语言:javascript复制
#!/bin/sh

if [ $# -eq 0 ]; then
        echo "usage: rmtomv <files...>" >&2
        exit 2;
fi

for file in "$@"; do
        destfile="`basename "$file"`"
        suffix='';
        i=0;

        # 如果文件已经存在则加上后缀
        while [ -e "$HOME/.Trash/${destfile}${suffix}" ]; do
                suffix=" - copy $i";
                i=`expr $i   1`
        done
        
        # 如果下执行命令完不显示信息去掉-v参数
        mv -vi "$file" "$HOME/.Trash/${destfile}${suffix}"
done

最后写入alias

代码语言:javascript复制
# vim ~/.bash_aliases 或者 ~/.bashrc里添加一行
alias rm='rmtomv'

测试

代码语言:javascript复制
# touch a
# rm a

最终将会在~/.Trash/目录下看到被删除的文件

0 人点赞