rm安全刪除(一條命令變rm為mv)

2021-10-04 01:27:38 字數 2435 閱讀 9058

習慣root賬號登陸操作,習慣使用命令rm -rf file,一次手誤,使用了rm -rf ./****,結果刪除了不該刪除的檔案,雖然不是很嚴重的後果,但是還是有點後怕的,怕哪天一不小心rm -rf *,那就只有跑路了。。。

不使用root賬號操作,偶爾彆扭,所以還是自行更改rm命令吧,兩個指令碼,執行指令碼實現rm到mv的轉變

例項系統:

拷貝兩檔案到伺服器,也就是例項的rmdev及rmdev.sh

vim  rmdev

#!/bin/bash

trash_dir="/tmp/userdel/$/.trash"

mkdir -p $trash_dir

sbrun()

#嚴禁執行(笨拙**段,可優化)

for i in $;do [ "$i" = "/" ] && sbrun ;done

for i in $;do [ "$i" = "/root" ] && sbrun ;done

for i in $;do [ "$i" = "/home" ] && sbrun ;done

for i in $;do [ "$i" = "/root/" ] && sbrun ;done

for i in $;do [ "$i" = "/home/" ] && sbrun ;done

rmpath=""

# rm -rf時要去掉-rf引數

for arg in "$@"

do is_arg=$(echo "$arg" | grep "^-")

if [ -z "$is_arg" ]; then

if [ -n "$rmpath" ]; then

rmpath="$ "

firmpath="$ $arg"

fidone

if [ -n "$rmpath" ]; then

file_parent_dir=$(pwd $rmpath)

suffix=$(echo `date "+%y%m%d"`)

suffix1=$(echo `date "+%h%m%s"`)

#備份檔案名稱

file_trash_dir="$/$/$/$.rm.tmp"

if [ ! -d "$file_trash_dir" ]; then

mkdir -p $file_trash_dir

fimv $rmpath "$"

fi

vim  rmdev.sh

#!/bin/bash

cp ./rmdev /bin/rmdev

chmod 755 /bin/rmdev

#定期刪除檔案

echo '0 10 * * 1 \rm -rf /tmp/userdel/*' >> /var/spool/cron/root

[ -f /etc/bash.bashrc ] && (sed -i "/rmdev/d" /etc/bash.bashrc && echo 'alias rm="/bin/rmdev"' >> /etc/bash.bashrc && . /etc/bash.bashrc)

[ -f /etc/bashrc ] && (sed -i "/rmdev/d" /etc/bashrc && echo 'alias rm="/bin/rmdev"' >> /etc/bashrc && . /etc/bashrc)

[ -f /root/.bashrc ] && (sed -i "/alias rm/d" /root/.bashrc && echo 'alias rm="/bin/rmdev"' >> /root/.bashrc && . /root/.bashrc)

[[ -f "~/.bashrc" && "$user" != "root" ]] &&(sed -i "/alias rm/d" ~/.bashrc && echo 'alias rm="/bin/rmdev"' >> ~/.bashrc && . ~/.bashrc)

增加指令碼執行許可權:chmod +x rmdev.sh

執行指令碼,重新登陸即可生效

./rmdev.sh

刪除演示:

刪除檔案

嚴禁執行的目錄,給出提示並強制退出執行

刪除檔案後,會在/tmp/userdel目錄下生成執行使用者的目錄,此使用者刪除的檔案都在此目錄下的.trash目錄裡面,根據刪除時間可以找到具體刪除的檔案

定期清理/tmp/userdel目錄,\rm代表使用系統的rm命令

-----------日常記錄---------------

rm 刪除命令

rm 刪除 刪除檔案 rm filename 一 rmdir 刪除乙個空的目錄 rm命令 用於刪除檔案或資料夾。具體語法為 rm 路徑 檔名 例如,要刪除 home long manual.tar檔案,用下面命令 rm home long manual.tar 如果要刪除目錄,用rm r 路徑 目錄...

rm 命令過濾式刪除

1 開啟擴充套件萬用字元 shopt s extglob 2 檢視是否開啟 shopt s 3 使用命令 要刪除當前目錄下 nodelete.txt 以外的所有檔案 rm rf nodelete.txt 1 find not name nodelete.txt exec rm rf 2 也可以將fi...

掌握rm命令刪除檔案

linux rm命令用於刪除乙個檔案或者目錄。檔案一旦通過rm命令刪除,則無法恢復,所以必須格外小心地使用該命令。語法 rm options name.options 引數 i刪除前逐一詢問確認。f強制刪除。忽略不存在的檔案,不提示確認。r將目錄及以下之檔案亦逐一刪除。v詳細顯示進行的步驟 刪除檔案...