linux禁止rm运行,禁用rm命令,使用mv命令给linux建立回收站

把rm命令转换成mv命令,不能使用-r 参数,会报出一个错误,因为mv命令没有-r参数,下面是方法:

在用户主目录下创建一个隐藏文件夹~/.trash作为垃圾回收站

[root@akuilinux01 shellXT]# mkdir -p ~/.trash

写一个脚本

[root@akuilinux01 tmp]# vim ~/.bashrc

#设置别名,rm是删除文件,rl是查看回收站,ur是恢复文件

alias rm='trash'

alias rl='trashlist'

alias ur='undelfile'

#替换rm指令移动文件到~/.trash/中

trash()

{

mv $@ ~/.trash/

}

#显示回收站中垃圾清单

trashlist()

{

echo -e "33[32m==== Garbage Lists in ~/.trash/ ====33[0m"

echo -e "\a33[33m----Usage------33[0m"

echo -e "\a33[33m-1- Use 'cleartrash' to clear all garbages in ~/.trash!!!33[0m"

echo -e "\a33[33m-2- Use 'ur' to mv the file in garbages to current dir!!!33[0m"

ls -al ~/.trash

}

#找回回收站相应文件

undelfile()

{

mv -i ~/.trash/$@ ./

}

#清空回收站

cleartrash()

{

echo -ne "\a33[33m!!!Clear all garbages in ~/.trash, Sure?[y/n]33[0m"

read confirm

if [ $confirm == 'y' -o $confirm == 'Y' ] ;then

/bin/rm -rf ~/.trash//bin/rm -rf ~/.trash/. 2>/dev/null

fi

}

#Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

在命令行下面刷新一下环境配置,即可生效:

[root@akuilinux01 ~]# source ~/.bashrc

source命令的作用就是用来执行一个脚本,那么:

source a.sh 同直接执行 ./a.sh 有什么不同呢,比如你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行 echo $KKK ,发现没有值,如果你用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是source不同它就是在本shell中执行的,所以可以看到结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值