linux/mac下命令行rm回收站--rmtrash

linux、mac的命令行下没有回收站功能,很多时候手一抖就把重要文件给 rm -fr * 了,虽然linux下有可能通过lost +found/debugfs找回,但难度也比较大,不能保证一定能够找回。人总是会犯错,本人工作这几年也犯过3次rm -fr删除后后悔的错误,与其后悔不如防范于未然,像桌面操作系统(windows、mac os、Ubuntu)一样加个回收站机制就可以了,经过几天的努力终于实现了,放到github上了,欢迎使用。

源码地址:https://github.com/LaiJingli/rmtrash

rmtrash 是linux和mac下命令行版本rm的回收站,安装后对用户透明,符合正常使用rm的习惯,有了他再也不怕rm时候手颤抖了。
rmtrash stands for "rm trash" which acts just like the system built-in rm command,and just moves the file to the trash for recovery when needed.

提醒:rmtrash主要用于防止人为误删除操作,回收站本身不能替代系统正常的数据备份操作,数据备份依然非常重要。

来张小截图:

主要参考了如下2篇文章,向作者表示感谢:

回收站功能在 Linux 中的实现 http://www.ibm.com/developerworks/cn/linux/1410_licy_linuxtrash

Bash Getopts - 让你的脚本支持命令行参数 http://linux.cn/article-3204-1.html

时间: 2024-10-21 18:10:41

linux/mac下命令行rm回收站--rmtrash的相关文章

Mac下命令行发邮件【搭配php(shell_exec...)等脚本语言,轻松发邮件,告别各种依赖库】

用到的是msmtp,一个smtp客户端,比sendmail,postfix更加轻量.用自己的QQ邮箱(163...)发邮件的话,很适合. Mac下安装很简单,一句话:brew install msmtp 另外需要配置两个文件: ~/.mailrc: ~/.msmtp: 正式发送: 收到洛: PHP发送的话,用shell_exec之类的函数,就不用多说啦,命令当然支持更多的参数,详细可参考相关文档或者Terminal输msmtp --help查看.

Mac下命令行下载android源代码并构建apk过程

前提是java .sdk.ndk .cmake.gradle .gradlew都已经安装和配置好. 1.下载源码: git clone http://git-ma.xxxx.com.cn/xxxx/xxxxx-ANDROID.git 2.改实际项目有用android 的small框架,框架文件夹放在master分支上.要编译的develop 分支没有这个文件夹.需要下载下 git submodule update --init --recursive 3.进入android项目目录 ./grad

Mac下命令行启动Mysql

启动: sudo /usr/local/mysql/support-files/mysql.server start 停止: sudo /usr/local/mysql/support-files/mysql.server stop 还是比较麻烦,可以简化一下:在~/.bash_aliases中添加这样的命令: alias mysqlstart='sudo /usr/local/mysql/support-files/mysql.server start'alias mysqlstop='sud

mac下命令行安装node.js及切换不同版本nodejs

摘自: http://www.cnblogs.com/ikuyka/p/5825762.html 前提是你电脑里已经装了node.js然后才能采用以下命令(以下代码最好不要同时运行) sudo n --lastest //最新版 sudo n --stable //稳定版 sudo n 4.x //4系列版本 sudo n 6.x //6系列版本 切换 sudo n 以笔者装的为例,输入以上代码后会出现 node/4.4.7 node/6.5.0 然后按上下键选择及回车就能选相应的版本了.

Mac下命令行打开Sublime

open -a /Applications/Sublime\ Text\ 2.app composer.json 每次这样输太麻烦,可以这样: ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl subl composer.json

Mac OSX系统、Linux、Windows命令行教程

Mac OSX系统.Linux.Windows命令行教程 一.各系统终端的使用方法 二.各系统命令的功能 用你的终端做一些事情 (command line, Terminal, PowerShell). 一.各系统终端的使用方法 Mac OSX 在Mac OSX系统上,你应该 按住 command 键,并敲空格键. 屏幕顶部会弹出一个蓝色的"搜索框". 输入"terminal". 点击终端应用程序,这个程序的图标看起来有点像一个黑盒子. 终端就打开了. 现在你可以在

linux/mac下的配置自定义命令alias

linux/mac下的自定义命令alias,并保存别名使其永久生效(重启不会失效) 在做开发每次提交代码的命令都是一长串参数,不想去记,于是可以使用alias命令来解决这个问题:alias aCommandAlias='aCommand 一堆参数什么的'比如alias gpush='git push origin HEAD:refs/for/master' 这样在终端中,只需要输入gpush就ok了. 但是只是这样的话,会在重启之后失效,解决办法是编辑~/.bashrc文件,每行加入一个alia

linux下命令行连接FTP是遇到的错误(425 Failed to establish connection)

linux下命令行连接FTP是遇到的错误(425 Failed to establish connection) 首先FTP的运行模式有主动模式和被动模式两种 然后笔者在工作中搭建了ftp,但是没有开启他的被动模式. 然后server端的防火墙开放了21端口. 因此客户端能连上server,但是输入命令会提示.(首先要数据passive off命令关闭客户端以被动模式连接server端) 原因是ftp在主动模式下是通过21端口进行登陆的,但是后续是通过20端口与客户端进行数据交换. 因此笔者在这

Linux & Mac curl 命令行使用——POST&GET

http提交一个表单,比较常用的是POST模式和GET模式 在curl的命令行下,GET模式什么option都不用,只需要把变量写在url里面就可以了 比如: curl http://www.sina.com.cn/login.cgi?user=admin&password=admin 而POST模式的option则是 -d curl -d "user=admin&password=admin" http://www.sina.com.cn/login.cgi 如果访问