admin管理员组

文章数量:1587916

有时候在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

处理完毕

本文标签: 回收站操作文件LinuxMV