我们来自己弄个回收站玩玩吧

  今天看到一个帖子,讲数据误删之后怎么恢复。在后面的跟帖中发现了一个比较好玩的东西,他的原话是这样的:

觉得挺好玩的,于是决定自己弄着试试。

  先来建个目录做回收站吧,我选择在根目录下建了一个trash的隐藏文件夹用作回收站:mkdir /.trash

  来看一眼建立的回收站吧:ll -a /|grep .trash   

  然后我查了查mv的用法:man mv。在里面,有这么一个参数

这样一来就明显了,我需要把“rm *”替换成“mv -t /.trash -i *”,然后就大功告成了。既然准备自己定义命令,当然离不开alias:alias rm=‘mv -t /.trash -i‘

  然后我们看看alias的列表:alias      这一条就是新添加的。

  我们来试试有没有作用吧,先随便新建一个文件:touch test.test,然后用rm删除:rm test.test。ls查看,发现test.test确实不见了,那么是不是被移到回收站“/.trash”中了呢,去看看吧:ls /.trash    果然在回收站。

  至此,功能已经实现。但是想到一个问题,如果我确实想要删除文件怎么办?我试着删除回收站中的文件:rm /.trash/test.test 得到提升  mv: "/.trash/test.test" 与"/.trash/test.test" 为同一文件   。这可麻烦了,难道每次删除文件都只能通过 /bin/rm 来实现了吗?算了,一不做二不休,干脆在加一条自定义命令吧:alias rrm=‘/bin/rm -i‘    这里不能写成“rrm=‘rm -i‘”   因为rm已经被替换成‘mv -t /.trash -i‘了。然后我们来试试rrm指令:rrm /.trash/test.test    输入y确认,最后成功删除了test.test文件。

  alias指令是单次生效的,关机后下次开机就没有了,为了保证下次开机指令的功能保持,我们可以修改~/.bashrc 文件。.bashrc文件有这么一句话“User specific aliases and functions”,我们可以把自己想要定义的别名都写在这个文件里。把文件里原有的  alias rm=‘rm -i‘ 注释掉,加上  alias rrm=‘/bin/rm -i‘ 和  alias rm=‘mv -t /.trash -i‘ 两句。ok,现在这个功能就永远留存下来了~~

时间: 2024-10-05 04:26:00

我们来自己弄个回收站玩玩吧的相关文章

弄个知乎的粒子动态背景_实践particles.js

好久没登录知乎,发现他们的登录页面粒子动态效果蛮炫的,查一下代码用了Particles.js基于Canvas画布创建粒子颗粒效果. 上图 上图: 感觉有比格,就照着弄了一个,玩玩. github: https://github.com/VincentGarreau/particles.js/ 操作过程: 网上有基本流程,可以参考一下,不过直接用在登录页面 会有小bug,需要调整下. 1.首先在页面中引入particles.js文件. <script src="js/particles.js

二维码(QR Code)生成与解析

二维码(QR Code)生成与解析 写在前面 经常在大街上听到扫码送什么什么,如果真闲着没事,从头扫到位,估计书包都装满了各种东西.各种扫各种送,太泛滥了.项目中从没接触过二维码的东东,最近要使用,就扒了扒网络,发现关于解析二维码的类库还是非常多的,这里就选择一个做一个demo,玩玩. 一个例子 关于二维码的组件还是非常多的,你可以使用nuget选择一款使用就可以了. 生成二维码 // GET: Home public ActionResult Index() { QRCodeEncoder e

Maria DB 安装

关注一下MariaDb,发现它更新得贼快贼快的,这感觉比Mysql好多了,所以弄个来玩玩,其实安装个也贼简单到,不要下载源码包,直接下个二进制包放上去就好了^-^ 1: 下一个对应Linux版本的二进制包,我的是Linux_x86的,解压tar包: tar -zxf mariadb_linux_x86.tar.gz 2: 搬到/usr/local/mysql下: mv mariadb_linux_x86 /usr/local/mysql 3: 更换目录的拥有者: chown -R mysql:m

初探appium之环境搭建

前段时间一直在折腾python的爬虫,想搞接口自动化.但是写了一个月,发现在我现在的这份的工作中根本接触不到接口.所以就想先放下来,先做点目前能够接触到的,也需要做的东西. 东西越来越多,人手不足.自己弄一下appium玩玩吧.下面为大家分享一下appium的环境搭建. 必须安装: 一.搭建Android环境 1.安装JDK 配置系统变量新建JAVA_HOME(JDK的安装路径) 配置系统环境变量Path(如果不存在,则新建变量 PATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的起

DNS协议

从百度开始说 众所周知,www.baidu.com就是百度网站的首页,它凭内容简单成为了不少电脑测试是否可以上网的直接凭据.www.baidu.com是一个域名,在真正通信的时候,域名是不被服务器这个铁疙瘩所识别的,铁疙瘩认识的就是IP地址.公网上的IP地址是唯一的,每个端口号有代表这一个程序进度.于是"ip地址+端口号"的组合就成了确定机器和它进行的程序的唯一识别码,而"ip地址+端口号"的组合名就叫socket. 虽然IP地址表示着机器,但是IP地址不好记,所以

[C#]二维码(QR Code)生成与解析

写在前面 经常在大街上听到扫码送什么什么,如果真闲着没事,从头扫到位,估计书包都装满了各种东西.各种扫各种送,太泛滥了.项目中从没接触过二维码的东东,最近要使用,就扒了扒网络,发现关于解析二维码的类库还是非常多的,这里就选择一个做一个demo,玩玩. 一个例子 关于二维码的组件还是非常多的,你可以使用nuget选择一款使用就可以了. 生成二维码 // GET: Home public ActionResult Index() { QRCodeEncoder endocder = new QRCo

lyzhangxiang - LAN8720+SIM800工业物联网RTU

http://www.amobbs.com/thread-5660865-1-1.html RTU/DTU这种产品好像2000年左右就有了,淘宝上搜索一下基本上200左右的很多,这也是一个做烂了的东西了.工作之后接触硬件相关的工作就很少了,不过看到各种硬件的板子还是有点小兴奋,看来还是很喜欢折腾这些的,自己画个图焊接个板子,真的还挺开心.所以打算自己弄一点硬件玩玩纯粹当爱好了.关于这个东西需要有什么功能,还没有想好不过支持MQTT协议是一定要的,后台自己也能写Java还算熟悉,采用NETTY +

linux敲这些命令前想一下!

1.rm -rf / [[email protected] ~]# rm -rf / rm: 在"/" 进行递归操作十分危险 rm: 使用 --no-preserve-root 选项跳过安全模式 [[email protected] ~]# 其实我想说的是rm -rf /*  此外rm -rf .和rm -rf * 这样命令敲之前要想好.如果怕误删除就自己在linux弄个回收站 2.mkfs.ext3|4 /dev/xxx  其实我想说的是格式化硬盘的时候要确定好自己的磁盘.避免误伤

一言入圣 隐居箴言

山居隐居山林,第一要事 就是风水,说白了就是地理环境.风水的第一要素,就是水.其次是山势峰峦,林泉涧溪,动植物.再次,是路和附近的市镇,风俗人情等等,水至关重要.得之则生,失之则死.最好是要有一眼终年常流的泉水,如有温泉更好.若泉水量大,可以为池,为塘,池可以饮牲畜,塘可以养鱼莲.如果实在没泉,那就择地穿井.当然方位很重要.住处要在前上方有一泄瀑布就好了,可时往仰观.下处不远要有一湾石溪更佳,房屋不可离水太近,潮气重,蚊虫多,多蛇蝎.所以要远水近泉.地选 山势平坦处,出路近而居所幽.很好办,只需