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 ...
随机推荐
- Spring_xml和注解混合方式开发
1. spring核心配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q ...
- 剑指Offer_编程题_1
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. class Sol ...
- linux对4T硬盘进行分区
使用parted工具: yum install parted parted /dev/sdb //选择硬盘 GNUParted 2.3Using /dev/sdbWelcome to GNU Part ...
- Spark MLlib 机器学习
本章导读 机器学习(machine learning, ML)是一门涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多领域的交叉学科.ML专注于研究计算机模拟或实现人类的学习行为,以获取新知识.新 ...
- koa2学习笔记
Koa -- 基于 Node.js 平台的下一代 web 开发框架 首先创建一个项目文件夹进行初始化 npm init -y 该命令执行后会生成一个package.json项目描述文件 安装koa n ...
- while应用和函数学习
# ******************************练习****************************# 在控制台中获取两个整数,作为循环开始和结束的点'''a = int(in ...
- Django之名称空间
由于name没有作用域,Django在反解URL时,会在项目全局顺序搜索,当查找到第一个name指定URL时,立即返回. project/urls.py urlpatterns = [ path('a ...
- UUID在Java中的实现与应用
UUID是什么 UUID的全称为:Universally Unique IDentifier,也被称为GUID(Globally Unique IDentifier).是一种由算法生成的唯一标识,它实 ...
- Socket编程 (一)
<<Linux 网络编程>>摘要 注意: 其中的大部分成员是网络字节序(大端字节序); 编程: 服务器先要做的事情: socket() 初始化Socket bind() 绑定本 ...
- Java入门系列 Lambda表达式
https://blog.csdn.net/bitcarmanlee/article/details/70195403