有时候在linux上操作rm -rf 删除命令时,不下心就会将不想删除的文件给删除了,删完后,顿时傻眼了,比如 ,文件夹test下面有 a ,a1 ,b ,b2四个文件,本来想删除test文件夹下面的a和a1连个文件,
输入:
rm -rf a*
结果,因为操作快了,输入变成了
rm -rf a *
结果将test文件夹下的a ,a1 ,b ,b2 四个文件全部删除了
为了避免这样的情况发生,我们决定将rm命令替换成mv文件到回收站,然后在回收站中统一删除
具体方式如下:
一、增加rm替换成mv的脚本文件del.sh
mkdir scripts
cd scripts
vim del.sh
在del.sh脚本中输入如下内容:
#! /bin/bash
# Description: 替换rm命令,不是删除文件,而是移动文件到/home/trash_tmp/
TRASH_DIR="/home/garbage"
for i in $*; do
STAMP=`date +%F-%T` #首先这个是反引号,不是单引号,具体反引号和单引号区别自己查
FileName=`basename $i`
mv $i $TRASH_DIR/$FileName"_"$STAMP
done
STAMP=`date +%F-%T` 会在原文件后面增加时间,然后mv到回收站,解决同名文件频繁删除会引起覆盖提示或提示目标非空。
二、创建回收站
mkdir /home/garbage
三、修改rm变量
在/root/.bashrc配置文件中增加alias rm='sh /scripts/del.sh'
vim /root/.bashrc
在bashrc文件中增加 alias rm='sh /scripts/del.sh'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias rm='sh /scripts/del.sh'
三、刷新环境变量
source /root/.bashrc
四、测试
mkdir abc
rm abc
ls /home/garbage
abc_2023-05-17-17:30:16
五、删除garbage下的文件使用如下命令:
\rm -rf abc_2023-05-17-17:30:16
处理完毕