在LINUX上使用rm是删除文件的,但rm也是危险的,使用不当就会造成不可估量的影响,例如:rm -rf /*(虽然可以使用debugfs进行恢复,不过这个就要靠运气了)。在rm操作时,我们可以像windows上一样,给rm加上一个移到回收站的功能。

一、myrm脚本

因为exit会使得子shell退出,如果将此脚本写成一个函数放到.bashrc的话,中间一旦出错就会导致终端窗口关闭。故单独写一个脚本。脚本内容如下:

#!/bin/bash

TRASH=/tmp/bak

set -e #Exit immediately if any untested command fails in non-interactive mode.

if [[ $1 =~ ^-[^rf] ]]; then

echo "usage: rm [-rf] files"

exit 1

fi

if [ $# == 0 ]; then

echo "usage: rm [-rf] files"

exit 2

fi

mkdir -p $TRASH

#echo rm $@

if [[ $1 =~ ^-[rf]|^-rf$ ]]; then

for (( i=2;i<=$#;i++ )); do

eval file="\${$i}"

#echo "$file => $TRASH"

mv "$file" $TRASH

done

else

for (( i=1;i<=$#;i++ )); do

eval file="\${$i}"

#echo "$file => $TRASH"

mv "$file" $TRASH

done

fi

如果想删除的时候有相关提示,可以把上面的注释功能去掉。因为脚本使用的模糊匹配,所以针对rm *, rm -rf *, rm -f *, rm -r等危险的行为都是有效的。$file 之所以用"" 包围,是考虑到文件名含有空格的情况。

将以上脚本放置到path路径里,并给其可执行权限,完成后,可以直接执行myrm命令,如果能正常找到,证明脚本放的位置是对的。(当然也可以使用其他路径,使用其他路径的时候,在alias调用里就需要写全路径)

二、配置~/.bashrc文件

alias rm=myrm

myclear(){

ls ~/trash

if [ $? -eq 0 ]; then

read -p "Do you want to clear all files in ~/trash (yes/no): " var

if [ $var = "yes" ]; then

\rm -rf ~/trash/*

elif [ $var = "no" ]; then

echo "nothing to do"

fi

fi

}

在这之后,可放心使用rm,并可用myclear定期清空自己的~/trash回收站。

这种方法仅在终端中敲命令有效,对于自己编写的脚本,rm还是原来的rm。如果想要对于终端里使用的rm也可以进行备份的话,就把myrm改为rm,存放到原来rm的位置,把rm命令修改为rrm或其他,将把原myrm脚本中的rm命令都改为rrm即可。

linux rm 回收站,给rm设置回收站相关推荐

  1. linux命令行进入回收站,Linux 终端命令 rm 删除的文件进入回收站实现方法

    第一步 新建个脚本内容如下: #!/bin/sh # script to send removed files to trash directory mv $@ ~/.local/share/Tras ...

  2. 在linux设置回收站 - 防止失误操作造成数据清空,并定期清理

    安装trash sudo apt-get install trash-chi 原理 执行trash命令后,是将文件移动了用户的回收站,每个用户的回收站路径为$HOME/.local/share/Tra ...

  3. linux 查找后删除目录,linux中find与rm实现查找并删除目录或文件

    linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件 find 要查找的目录名 -name .svn |xargs rm -rf 删除指定名称的文件或文件夹: find - ...

  4. linux明日命令(6):rm命令

    阅读目录(Content) 一. 命令格式: 二. 命令功能: 三. 命令参数选项 四. 命令实例 1. 删除文件 2. 强行删除file,系统不进行确认提示. 3. 删除当前目录下的所有.log结尾 ...

  5. Linux 下谨慎使用 rm,避免从删库到跑路的悲剧发生

    我们该如何再次避免删库"跑路"等事件的再次发生? 对此,在企业首先做好权限管理以及多重审核机制的同时,CSDN 也曾教诸多程序员们如何在 Linux 下谨慎使用 rm,避免从删库到 ...

  6. linux删除文件命令 rm,rm 删除目录及文件

    功能:rm 命令,删除一个目录中的一个或多个文件或目录(文件夹). 它也可以将某个目录及其下的所有文件及子目录均删除. 对于链接文件,只是删除了链接,原有文件均保持不变. 文件一旦被删除,它不能被恢复 ...

  7. linux环境下恢复rm误删的文件

    文章目录 前言 rm之后还有救吗 使用foremost找回文件 使用extundelete找回文件 预防误删引发的事故 总结 前言 一提到在 linux 环境下删除文件,那绝对离不开 sudo rm ...

  8. Linux之mkdir和rm命令选项

    Linux之mkdir和rm命令选项 1. mkdir命令选项 命令选项 说明 -p 创建所依赖的文件夹 mkdir命令选项效果图: 2. rm命令选项 命令选项 说明 -i 交互式提示 -r 递归删 ...

  9. linux find 删除文件夹,linux中find与rm实现查找并删除目录或文件linux操作系统 -电脑资料...

    在linux中find是查找搜索文件而rm是删除文件,下面我们来看一篇linux中find与rm实现查找并删除目录或文件的实例,希望文章对大家会有所帮助, 删除指定目录下指定文件 find 要查找的目 ...

最新文章

  1. Python高级函数--map/reduce
  2. 005zabbix3.0报错记录
  3. ntfs分区对linux的局限,如何使Linux支持NTFS分区
  4. BML CodeLab重磅更新:在Windows上可原生Linux AI开发
  5. vue+axios请求时设置request header请求头(带上token)
  6. 回首十年——写给还在各等级教育中盲目学习的人
  7. 华硕ROG5电竞手机跑分数据曝光:骁龙888+16G超大运存
  8. JS 继承各种方法的优劣比较 ----JS 学习笔记(五)
  9. pandas多行合并一行_Pandas函数妙用
  10. 文件拷贝--单一文件过大
  11. 总结——达内视频(三)
  12. 2022-2028年中国企业总部管理行业市场专项调查及投资前景分析报告
  13. stm32 iap升级
  14. 微服务实施笔记(四)——部署服务发现
  15. 毕业设计| 单片机自动分拣小车(上货/卸货/WIFI识别)
  16. 单点登录--微服务的登录解决方案
  17. BlockingQueue及其实现
  18. 量子能--下一代能源革命
  19. 推荐20个优秀企业技术博客
  20. 学UI设计,用对这5款设计软件是关键

热门文章

  1. dostyle 东格TJ3401 显示器 固件升级
  2. 坐标转换—高斯正反算(附测量助理最新版软件下载)
  3. tecplot云图——数据文本格式2
  4. SPRD Camera sensor
  5. 第二章 查询结果排序(SQL server经典实例)
  6. 苏锡常镇一模数学试卷含官方答案
  7. android 点赞源码,android仿即刻点赞文字部分的自定义View的示例代码
  8. django创建app的命令
  9. Python:求列表的最大数以及下标
  10. 物联网云平台系统设计