Linux将rm命令设置为回收站【转】
一个方案就是重定向 rm 命令以嫁接为 mv 命令,相当于给 Linux 系统定制了一个回收站。
实现方式如下:
### 重定义rm命令 ### # 定义回收站目录
trash_path='~/.trash' # 判断 $trash_path 定义的文件是否存在,如果不存在,那么就创建 $trash_path.
if [ ! -d $trash_path ]; then
mkdir -p $trash_path
fi # 定义别名:使用 rm 就调用 trash
alias rm=trash # 使用 rl 就调用 'ls ~/.trash'
# 如果更改上面的回收站目录这里的目录也需要修改
alias rl='ls ~/.trash' # 使用 unrm 就调用 restorefile,需要在删除目录的父目录下执行
alias unrm=restorefile # 使用 rmtrash 就调用 claearteash
alias rmtrash=cleartrash # 恢复文件的函数
restorefile()
{
mv -i ~/.trash/$@ ./
} # 删除文件的函数
trash()
{
mv $@ ~/.trash/
} # 清空回收站的函数
cleartrash()
{
read -p "确定要清空回收站吗?[y/n]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}
最后将上述脚本写入 /etc/bashrc,并立即执行命令 source /etc/bashrc 即刻生效。
这个脚本定义了几个命令:
- rl:查看回收站下的文件。
- unrm 文件名或目录:恢复到当前的路径下。
- rmtrash:清空回收站,不过会友好提示。
执行 rm 不会真正删除,而是使用 mv 移动到我们指定的回收站。实在真的想删除可以 /bin/rm 来进行删除。
另外,需要注意的是,之前 rm 指令的一些参数可能不再使用,因为 rm 现在其实是 mv 了。
使用示例:
# touch hoxistest
# touch
# mkdir haha
# ls
haha hoxistest
# rm
# ls
haha hoxistest # 查看回收站文件
# rl
myftp1 # 恢复已删除文件
# unrm
[root@CESHI-CLM---- test]# ls
haha hoxistest # rm haha/
# rm hoxistest
# rl
haha hoxistest # 情况回收站
# rmtrash
确定要清空回收站吗?[y/n]y
# rl
效果看着应该还可以吧。
转自
作为一名运维侠,如何潇洒的删库跑路? https://www.toutiao.com/a6604987457572176388/?tt_from=mobile_qq&utm_campaign=client_share×tamp=1537847280&app=news_article&utm_source=mobile_qq&iid=26112390770&utm_medium=toutiao_ios&group_id=6604987457572176388
Linux将rm命令设置为回收站【转】的更多相关文章
- Linux中rm命令详解
linux下rm命令使用详解---linux删除文件或目录命令 用户可以用rm命令删除不需要的文件.该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除 ...
- linux下rm命令修改,增加回收站功能【笔记】
一个脚本,linux的用户根目录下.bashrc最后加入如下代码,可以修改rm命令,让人们rm时候不再会全部删除,而是会加入到回收站里,以下是根据别人的资料参考修改的,不是原创 加入后,需要sourc ...
- 【Linux下禁用rm命令之建立回收站】
第一步 创建回收站目录 # 根据自己的习惯,找个位置创建一个用作回收文件的目录 # 我们这里将在root目录下面创建一个名为".trash"的隐藏文件 [root@fedora ~ ...
- 【Linux】- rm命令
Linux rm命令用于删除一个文件或者目录. 语法 rm [options] name... 参数: -i 删除前逐一询问确认. -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认. -r 将目 ...
- linux下rm命令删除文件名中包含特殊字符的文件【转】
转自:http://blog.itpub.net/143526/viewspace-1060083/ 1. 删除带“-”的文件名的方法 2. 删除包含其它特殊字符的文件 3. 删除系统打不出的乱码文件 ...
- linux 重写rm命令
重写rm命令 replease rm to trash 必须使用root编辑/etc/bashrc vim /etc/bashrc 在最后面增加如下脚本 saferm () { if [ ! -d ...
- 20190925 - 使 macOS 的 rm 命令删除到回收站的不完美办法
今天使用 macOS 时,使用 rm 删除了一个不重要文件,为保证以后不删除重要文件,找到一个让 rm 命令更安全的办法. 使用 MacPorts 安装 rmtrash 命令. sudo port i ...
- linux的history命令设置
history的历史记录,同一个用户的各个会话,读取到的内容也是不一样的,原因是它读取的是shell会话缓存里的内容.只有当用户退出当前会话的时候,会话里的缓存内容才会写入~/.bash_histor ...
- Linux执行rm命令提示Argument list too long解决办法
在Linux上删除文件时,执行命令报错,报错信息如下:node1:/u01/app/oracle/admin/testdb/adump>rm -f *.aud-bash:/bin/rm:Argu ...
随机推荐
- 设计模式---数据结构模式之组合模式(Composite)
前提:数据结构模式 常常有一些组建在内部具有特定的数据结构,如果让客户程序依赖这些特定的数据结构,将极大的破坏组件的复用.这时候,将这些数据结构封装在内部,在外部提供统一的接口,来实现与特定数据结构无 ...
- LInux Zebra
本文章摘自linux公社 https://www.linuxidc.com/Linux/2015-07/120224p1.htm 写在前面 从22号中午开始琢磨zebra/quagga的用法,一直 ...
- layui(六)——upload组件常见用法总结
layui中提供了非常简单的文件上传组件,这里写了一个上传图片的栗子,上传成功后返回图片在服务器的路径,并设置为页面中img的src属性.因为上传十分简单,没什么可说的,就直接上代码了. html代码 ...
- 自定义Tornado的session组件
session和cookie的关系 cookie:保存在客户端浏览器上的键值对 session_id = "eyJ1c2VyX2luZm8iOiJ" session:保存在服务器上 ...
- electron-vue项目搭建
参考:https://simulatedgreg.gitbooks.io/electron-vue/content/cn/getting_started.html 1. cnpm install -g ...
- electron-vue:Vue.js 开发 Electron 桌面应用
相信很多同学都知道 Electron 可以帮助开发人员使用前端技术开发桌面客户端应用,今天介绍的 electron-vue 框架是一套基于 Vue.js 开发 Electron 桌面应用的脚手架,该项 ...
- Redis基础知识 之——发布/订阅
一.说明: 订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者).而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅 ...
- Python3快速入门
——<趣学Python-教孩子学编程>学习笔记 1.注释 (1)单行注释以 # 开头注释 # 这是一个注释 print("Hello, World!") (2)多行 ...
- 【LeetCode】89.Gary Code
Problem: The gray code is a binary numeral system where two successive values differ in only one bit ...
- aspnetpager使用介绍
AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化, 效果如下: 下面是我如何使用AspNetPager控件进行分页处理的详细代码: 1.首 ...