mac|linux 防范rm -rf數(shù)據(jù)丟失
此處標(biāo)題黨
之前見有同事誤刪了一個大目錄(rm -rf)钾菊,內(nèi)部數(shù)據(jù)都丟了慢哈,特寫此文章。
分析了一下磺箕,為了防止誤刪方便找回,可以使用mv
命令代替刪除(邏輯刪除)抛虫,
但是rm
命令是/bin/
目錄下的松靡,為只讀文件。
故想到使用 alisa
命令做 rm
命令的別名建椰。
1.準(zhǔn)備腳本
首先雕欺,寫了一個腳本,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.移動腳本并賦權(quán)限
根據(jù)自身情況來修改腳本垃圾桶地址或部分邏輯,
然后復(fù)制將腳本文件移動到/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請在~/.bash_rc
)
echo "alisa rm='rm.sh'" >> ~/.bash_profile && source ~/.bash_profile
source
之后蹦浦,可以試試使用rm命令(建議使用測試文件)。
4.增加定時任務(wù)
看個人需求 使用 crontab
增加定時任務(wù)
每天零點清空一次
0 0 * * * /bin/rm -rf /tmp/Trash/*
(垃圾桶地址記得更改)
5.問題說明
經(jīng)過測試撞蜂,
操作文件正常
操作目錄正常盲镶,
批量操作使用通配符'*'的話需要加 '\*'
例如:
刪除 某個目錄`*log`文件
rm \*log