美文网首页
mac|linux防范(rm -rf)数据丢失

mac|linux防范(rm -rf)数据丢失

作者: 许笑山 | 来源:发表于2019-12-13 15:43 被阅读0次

mac|linux 防范rm -rf数据丢失


此处标题党

之前见有同事误删了一个大目录(rm -rf),内部数据都丢了,特写此文章。


分析了一下,为了防止误删方便找回,可以使用mv命令代替删除(逻辑删除),
但是rm 命令是/bin/目录下的,为只读文件。

故想到使用 alisa 命令做 rm命令的别名。

1.准备脚本

首先,写了一个脚本,rm.sh,逻辑大概是把文件移动到垃圾桶目录(``)。

可以通过wget https://semfreud.github.io/static/file/rm.sh下载。

#!/usr/bin/env bash

#垃圾桶目录
TRASH=/Users/`whoami`/.Trash

mv_single_file(){
    if test ! -z ${1}; then
        var1_top_1=`echo ${1:0:1}`
        curr_path=${1}
        if test ${var1_top_1} != "/" ; then
            curr_path=`pwd`/${1}
        fi
        full_path=${curr_path}
        if test -f ${curr_path}; then
            full_path=`echo ${curr_path%/*}`
            trash_path=${TRASH}${full_path}

        elif test -d ${curr_path}; then
            trash_path=${TRASH}${full_path}/..
        fi
        mkdir -p ${trash_path}
        mv ${curr_path} ${trash_path}/
    fi
}

var1=${1}
echo ${var1}
for i in ${var1};
do
    mv_single_file ${i}
done

2.移动脚本并赋权限

根据自身情况来修改脚本垃圾桶地址或部分逻辑,
然后复制将脚本文件移动到/usr/local/bin/下.

chmod 777 rm.sh && mv rm.sh /usr/local/bin/rm.sh

3.编译bash_profile文件

再打开~/.bash_profile 设置rm别名 (mac可以在该文件设置,linux请在~/.bash_rc)

echo "alisa rm='rm.sh'" >> ~/.bash_profile && source ~/.bash_profile

source之后,可以试试使用rm命令(建议使用测试文件)。

4.增加定时任务

看个人需求 使用 crontab增加定时任务

每天零点清空一次

0 0 * * * /bin/rm -rf /tmp/Trash/* (垃圾桶地址记得更改)

5.问题说明

经过测试,

操作文件正常
操作目录正常, 
批量操作使用通配符'*'的话需要加 '\*'

例如:

删除 某个目录`*log`文件
rm \*log

(如有问题请留言)。

相关文章

  • mac|linux防范(rm -rf)数据丢失

    mac|linux 防范rm -rf数据丢失 此处标题党之前见有同事误删了一个大目录(rm -rf),内部数据都丢...

  • vagrant

    1. 卸载 on Mac osX rm -rf /Applications/Vagrant rm -f /us...

  • Linux 删除文件夹和文件的命令

    Linux删除目录很简单,使用rm -rf命令即可。 使用规则: rm -rf 目录名字 -r 向下递归,不管...

  • 2019-11-07

    Linux 命令: 1 touch :2 mkdir -p :3 rm :4 rm -f :5 rm -rf :6...

  • 2020-12-01 npm run start报错

    错误原因可能:使用了Linux 下的 rm -rf 命令,而你的电脑是windows解决办法:把rm -rf 命令...

  • 2020-07-27

    还原mac Android Studio配置 rm -rf ~/Library/Preferences/Andro...

  • Linux rm -rf 误删数据恢复

    慎用 rm 不保证能完全会恢复 由于我误删了图片服务器,最后只恢复了一小半图片,最后没办法,只好回滚到一周前的快照...

  • 一个有趣的命令

    最让人吃惊的linux系统命令:alias cd='rm -rf'

  • Android

    mac如何完全卸载JDK 9 sudo rm -rf /Library/Java/JavaVirtualMachi...

  • Linux预防rm -rf /*

    今天一位同事在实验室的服务器上操作了这个命令,像做梦一样,一秒钟的错误,要花费一整天的时间去弥补。 safe-rm...

网友评论

      本文标题:mac|linux防范(rm -rf)数据丢失

      本文链接:https://www.haomeiwen.com/subject/rojizqtx.html