linux rm 回收站,给rm设置回收站
在LINUX上使用rm是删除文件的,但rm也是危险的,使用不当就会造成不可估量的影响,例如:rm -rf /*(虽然可以使用debugfs进行恢复,不过这个就要靠运气了)。在rm操作时,我们可以像windows上一样,给rm加上一个移到回收站的功能。
一、myrm脚本
因为exit会使得子shell退出,如果将此脚本写成一个函数放到.bashrc的话,中间一旦出错就会导致终端窗口关闭。故单独写一个脚本。脚本内容如下:
#!/bin/bash
TRASH=/tmp/bak
set -e #Exit immediately if any untested command fails in non-interactive mode.
if [[ $1 =~ ^-[^rf] ]]; then
echo "usage: rm [-rf] files"
exit 1
fi
if [ $# == 0 ]; then
echo "usage: rm [-rf] files"
exit 2
fi
mkdir -p $TRASH
#echo rm $@
if [[ $1 =~ ^-[rf]|^-rf$ ]]; then
for (( i=2;i<=$#;i++ )); do
eval file="\${$i}"
#echo "$file => $TRASH"
mv "$file" $TRASH
done
else
for (( i=1;i<=$#;i++ )); do
eval file="\${$i}"
#echo "$file => $TRASH"
mv "$file" $TRASH
done
fi
如果想删除的时候有相关提示,可以把上面的注释功能去掉。因为脚本使用的模糊匹配,所以针对rm *, rm -rf *, rm -f *, rm -r等危险的行为都是有效的。$file 之所以用"" 包围,是考虑到文件名含有空格的情况。
将以上脚本放置到path路径里,并给其可执行权限,完成后,可以直接执行myrm命令,如果能正常找到,证明脚本放的位置是对的。(当然也可以使用其他路径,使用其他路径的时候,在alias调用里就需要写全路径)
二、配置~/.bashrc文件
alias rm=myrm
myclear(){
ls ~/trash
if [ $? -eq 0 ]; then
read -p "Do you want to clear all files in ~/trash (yes/no): " var
if [ $var = "yes" ]; then
\rm -rf ~/trash/*
elif [ $var = "no" ]; then
echo "nothing to do"
fi
fi
}
在这之后,可放心使用rm,并可用myclear定期清空自己的~/trash回收站。
这种方法仅在终端中敲命令有效,对于自己编写的脚本,rm还是原来的rm。如果想要对于终端里使用的rm也可以进行备份的话,就把myrm改为rm,存放到原来rm的位置,把rm命令修改为rrm或其他,将把原myrm脚本中的rm命令都改为rrm即可。
linux rm 回收站,给rm设置回收站相关推荐
- linux命令行进入回收站,Linux 终端命令 rm 删除的文件进入回收站实现方法
第一步 新建个脚本内容如下: #!/bin/sh # script to send removed files to trash directory mv $@ ~/.local/share/Tras ...
- 在linux设置回收站 - 防止失误操作造成数据清空,并定期清理
安装trash sudo apt-get install trash-chi 原理 执行trash命令后,是将文件移动了用户的回收站,每个用户的回收站路径为$HOME/.local/share/Tra ...
- linux 查找后删除目录,linux中find与rm实现查找并删除目录或文件
linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件 find 要查找的目录名 -name .svn |xargs rm -rf 删除指定名称的文件或文件夹: find - ...
- linux明日命令(6):rm命令
阅读目录(Content) 一. 命令格式: 二. 命令功能: 三. 命令参数选项 四. 命令实例 1. 删除文件 2. 强行删除file,系统不进行确认提示. 3. 删除当前目录下的所有.log结尾 ...
- Linux 下谨慎使用 rm,避免从删库到跑路的悲剧发生
我们该如何再次避免删库"跑路"等事件的再次发生? 对此,在企业首先做好权限管理以及多重审核机制的同时,CSDN 也曾教诸多程序员们如何在 Linux 下谨慎使用 rm,避免从删库到 ...
- linux删除文件命令 rm,rm 删除目录及文件
功能:rm 命令,删除一个目录中的一个或多个文件或目录(文件夹). 它也可以将某个目录及其下的所有文件及子目录均删除. 对于链接文件,只是删除了链接,原有文件均保持不变. 文件一旦被删除,它不能被恢复 ...
- linux环境下恢复rm误删的文件
文章目录 前言 rm之后还有救吗 使用foremost找回文件 使用extundelete找回文件 预防误删引发的事故 总结 前言 一提到在 linux 环境下删除文件,那绝对离不开 sudo rm ...
- Linux之mkdir和rm命令选项
Linux之mkdir和rm命令选项 1. mkdir命令选项 命令选项 说明 -p 创建所依赖的文件夹 mkdir命令选项效果图: 2. rm命令选项 命令选项 说明 -i 交互式提示 -r 递归删 ...
- linux find 删除文件夹,linux中find与rm实现查找并删除目录或文件linux操作系统 -电脑资料...
在linux中find是查找搜索文件而rm是删除文件,下面我们来看一篇linux中find与rm实现查找并删除目录或文件的实例,希望文章对大家会有所帮助, 删除指定目录下指定文件 find 要查找的目 ...
最新文章
- Python高级函数--map/reduce
- 005zabbix3.0报错记录
- ntfs分区对linux的局限,如何使Linux支持NTFS分区
- BML CodeLab重磅更新:在Windows上可原生Linux AI开发
- vue+axios请求时设置request header请求头(带上token)
- 回首十年——写给还在各等级教育中盲目学习的人
- 华硕ROG5电竞手机跑分数据曝光:骁龙888+16G超大运存
- JS 继承各种方法的优劣比较 ----JS 学习笔记(五)
- pandas多行合并一行_Pandas函数妙用
- 文件拷贝--单一文件过大
- 总结——达内视频(三)
- 2022-2028年中国企业总部管理行业市场专项调查及投资前景分析报告
- stm32 iap升级
- 微服务实施笔记(四)——部署服务发现
- 毕业设计| 单片机自动分拣小车(上货/卸货/WIFI识别)
- 单点登录--微服务的登录解决方案
- BlockingQueue及其实现
- 量子能--下一代能源革命
- 推荐20个优秀企业技术博客
- 学UI设计,用对这5款设计软件是关键