mac|linux防范(rm -rf)數(shù)據(jù)丟失

mac|linux 防范rm -rf數(shù)據(jù)丟失


此處標(biāo)題黨

之前見有同事誤刪了一個(gè)大目錄(rm -rf),內(nèi)部數(shù)據(jù)都丟了,特寫此文章。


分析了一下,為了防止誤刪方便找回,可以使用mv命令代替刪除(邏輯刪除),
但是rm 命令是/bin/目錄下的,為只讀文件。

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

1.準(zhǔn)備腳本

首先,寫了一個(gè)腳本,rm.sh,邏輯大概是把文件移動(dòng)到垃圾桶目錄(``)。

可以通過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.移動(dòng)腳本并賦權(quán)限

根據(jù)自身情況來修改腳本垃圾桶地址或部分邏輯,
然后復(fù)制將腳本文件移動(dòng)到/usr/local/bin/下.

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

3.編譯bash_profile文件

再打開~/.bash_profile 設(shè)置rm別名 (mac可以在該文件設(shè)置,linux請(qǐng)?jiān)?code>~/.bash_rc)

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

source之后,可以試試使用rm命令(建議使用測(cè)試文件)。

4.增加定時(shí)任務(wù)

看個(gè)人需求 使用 crontab增加定時(shí)任務(wù)

每天零點(diǎn)清空一次

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

5.問題說明

經(jīng)過測(cè)試,

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

例如:

刪除 某個(gè)目錄`*log`文件
rm \*log

(如有問題請(qǐng)留言)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容