建立回收站机制delete

椰子ya Linux 2020-09-07

上周写脚本不小心把/root目录删了,无法恢复,想起之前编写过建立回收站脚本,但是找不到了。
所以搬运大神江楼月美人编写的脚本


# 编辑命令
vim delete
#!/bin/bash
################################################################################
# SCRIPT_NAME     : delete.sh
#
# CREATE_TIME     : 2018/09/11
# AUTHOR          : Mochou_liqb
#
# DESCRIBETION    : delete some files and these files can be found in the linux's trash
# PARAMETER       : files' name
# EXAMPLE         : delete file1 file2 file3...
#
# UPDATE_RECORD   : no now
#
# DATE      OPERATION       CZR         DESCRIBETION
# ________  _____________   ________    __________________________________
#
# 2018/09/11  UPDATE Mochou_liqb
################################################################################
## 建立回收站机制,删除文件时把文件转移到.trash文件夹中,以备误删找回
if [ ! -d ~/.trash ]; then
    mkdir -p ~/.trash
fi
 
if [ $# -eq 0 ]; then
    #提示delete的用法
    echo "Usage:delete file1 [file2 file3...] "
else
    echo "You will delete these files:"
    echo $@
    
    #要求用户确认是否删除这些文件,回答n或者N放弃删除,其他字符表示确认
    echo -n "Are you sure to do this?[Y/N]:"
    read reply
    
    if [ "${reply}" != "n" ] && [ "${reply}" != "N" ]; then
        for file in $@
        do
            #判断文件或者目录是否存在
            if [ -f "${file}" ] || [ -d "${file}" ]; then
                mv -b "${file}" ~/.trash/
            else
                echo "${file}: No such file or directory"
            fi
        done
    else
        echo "No files removed"
    fi

编辑保存完毕后,把这个文件转移到/bin目录下,就可以在任意一个路径下使用delete命令了

PREV
实验:Rsync镜像同步,可以通过rsync、crontab配合ssh定时备份重要数据到另一台服务器
NEXT
实验:DHCP