bash/tcsh实现回收站(rm -rf 血的教训)

2023-05-16

rm -rf 慎用

命令敲得多了,常在河边走,难免会湿鞋

昨天,一个手误,敲错了命令,把原本想要留的文件夹给rm -rf掉了

几天心血全木有了,靠,死的心都有了


经百度,google以及尝试无果,哎,这个以后再研究怎么找回吧

几点教训:

1.rm 特别是rm -rf之前,小心,三思,或者直接将命令改写掉

2.做好备份,有便捷的备份脚本

3.做好定时备份,有个前辈搞定时脚本,每天定时自个执行,即使删错了也不会那么悲催

首先,搞个回收站


在~下 .bashrc或者.bash_profile加入

    mkdir -p ~/.trash

    alias rm=trash
    alias r=trash
    alias rl='ls ~/.trash'
    alias ur=undelfile

    undelfile()
    {
      mv -i ~/.trash/$@ ./
    }

    trash()
    {
      mv $@ ~/.trash/
    }

这是执行

rm 就相当于执行mv了

注:此时已经木有rm -rf了

删除的文件会在.trash中出现

可以恢复回去

ur filename

这就带来一个问题,如何删除回收站里的东西,这是后rm在这里是木有用的

在刚才.bashrc下继续加函数

    cleartrash()
    {
      read -p "clear sure?[n]" confirm
      [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /usr/bin/rm -rf ~/.trash/*
    }

然后,如果想清空回收站的话$cleartrash 就行了


血的教训,防范未然


上面是转的,下面研究了一下csh的用法,用在Rhel 6.5下面

csh需要在~/.cshrc下增加

if !(-d ~/.trash) then
  mkdir -p ~/.trash
endif
#alias rm 'mv \!* ~/.trash/' 重复删除会报 mv: Directory is not empty
alias rm 'set trash_dir=`date +%y%m%d%H%M%S%N`;mkdir ~/.trash/$trash_dir;mv \!* ~/.trash/$trash_dir'
#alias unrm 'mv -i ~/.trash/\!* ./' 原谅我unrm实在不会弄了……等高手来弄吧
alias cleantrash '/bin/rm -rf ~/.trash/*'


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash/tcsh实现回收站(rm -rf 血的教训) 的相关文章

  • GameFramework框架解读(AB打包、加载、热更流程 基于《Star Force》Demo)

    目录 1 单机模式 xff08 1 xff09 先打包进行设置 xff1a xff08 2 xff09 Start Build Resources 得到文件 2 热更 流程 xff08 1 xff09 修改第一步中的Resource 如图
  • Unity 改变物体顶点色

    扩展方法 xff1a Mesh的部分信息展示 xff1a Mesh挂上顶点采样shader xff1a
  • java对字符串数组进行排序

    import java util Arrays import java util Random public class Arrays o3 public static void main String args 自定义字符串 String
  • 判断某一点是否在包围盒内:Bounds.Contains

    蒙皮网格获取方法 xff1a SkinnedMeshRenderer xff1a m Bounds 61 colliderTran GetComponent lt SkinnedMeshRenderer gt sharedMesh boun
  • 关于协程记录一下

    void Start Print 61 Prints private IEnumerator Print void Update if Input GetKeyDown KeyCode S StartCoroutine Print if I
  • Android 10 安装兼容

    android exported 61 true
  • Unity 查Crash

    首先获得堆栈信息 xff0c AS 然后找Unity的NDK目录下的arm linux androideabi addr2line xff08 对应arm v7 xff09 xff0c 或者aarch64 linux android add
  • Unity TextMeshPro 毛边问题

    如图所示 xff1a 边缘像素透明度拉高了 结果是因为开了主相机的Post Processing 加低级抗锯齿 xff08 FXAA xff09 导致的 如图 xff1a 关闭Post Processing 或者关闭抗锯齿可解决 也可采用高
  • UnityWebRequest 本地读StreamingAssets写入persistentDataPath(坑啊)

    下文为自己以前写的 博客 xff0c 可谓打脸啊 xff08 知其然不知其所以然 xff09 以下为 Android 环境 本地读写数据 xff08 踩的坑 xff09 xff1a UnityWebRequest 加载本地文件的时候需要加
  • Application.logMessageReceived

    监听Unity的打印事件 xff0c 如常规打印 xff0c 报错等等 如下代码为自制的打印日志 xff1a List lt string gt mWriteTxt 61 new List lt string gt void OnEnabl
  • Unity编辑器篇(一)Scene界面

    xff08 一 xff09 xff0c 向屏幕中心发射一条射线 lastActiveSceneView 类似于 Game场景的相机 xff0c xff08 其实我也没搞懂是什么东西 xff09 Ray ray 61 SceneView la
  • 计蒜客-炮台实验

    蒜头君在玩一个战争模拟游戏 xff0c 他有高度为 1 2 3 ldots n1 2 3 n 的炮台各一个 xff0c 他需要把这 nn个炮台从左往右排成一行 xff0c 并且炮口都朝向右边 在这个游戏中 xff0c 所有炮台发射的炮弹会摧
  • Dockerfile详解超全

    Dockerfile详解 环境介绍指令介绍FROMMAINTAINERLABELADDCOPYEXPOSEENV在Dockerfile中使用变量的方式 RUNCMDRUN amp amp CMDENTRYPOINTVOLUMEUSERWOR
  • Debian8 修改root密码

    1 当系统启动进入GNU GRUB界面 xff0c 按esc停留在此页面 xff0c 按上下的方向键可以进行选择 2 选中要修改的系统 xff0c 按e进入编辑状态 xff0c 在linux开头的这一行末尾加上 init 61 bin ba
  • debian10 配置ntp服务

    debian10 配置ntp服务 1 安装ntp2 配置3 验证 服务器不能连外网 xff0c 内网中有一台授时服务器 xff0c 内网也搭建了debian10的本地镜像源 1 安装ntp apt install ntp 2 配置 sudo
  • STL priority_queue使用

    转自 xff1a http www cnblogs com lvpengms archive 2010 04 05 1704669 html 包含priority queue 的头文件是 lt queue gt priority queue
  • GNU 简单介绍(含glibc 源码下载)

    GNU是什么 xff1f 先放网址 xff1a https www gnu org GNU是一个自由软件操作系统 就是说 xff0c 它尊重其使用者的自由 GNU操作系统包括GNU软件包 xff08 专门由GNU工程发布的程序 xff09
  • P1591 阶乘数码 【高精】

    题目描述 求 n n n 中某个数码出现的次数 输入格式 第一行为 t t 10 t t leq 10 t t 10 xff0c 表示数据组数 接下来 ttt 行 xff0c 每行一个正整数 n n 1000 n n leq 1000 n
  • P1825 [USACO11OPEN]Corn Maze S 【BFS】

    题目描述 This past fall Farmer John took the cows to visit a corn maze But this wasn t just any corn maze it featured severa
  • P1002 过河卒 【DP】

    题目描述 棋盘上 AAA 点有一个过河卒 xff0c 需要走到目标 BBB 点 卒行走的规则 xff1a 可以向下 或者向右 同时在棋盘上 CCC 点有一个对方的马 xff0c 该马所在的点和所有跳跃一步可达的点称为对方马的控制点 因此称之

随机推荐