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 1 # mkdir haha # ls 1 haha hoxistest # rm 1 # ls haha hoxistest # 查看回收站文件 # rl 1 myftp1 # 恢复已删除文件 # unrm 1 [root@CESHI-CLM-10-254-4-48 test]# ls 1 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2017-09-29 linux的curl用法【转】