首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >24-DIY一个linux的回收站,及利用alias

24-DIY一个linux的回收站,及利用alias

作者头像
北野茶缸子
发布2022-12-09 14:57:00
发布2022-12-09 14:57:00
9550
举报
  • Date : [[2022-07-13_Wed]]

前言

宝友,这可不兴试啊。

为什么Linux 中没有回收站的机制呢?可以参考讨论:基于文本的Linux为什么没有回收站?- 知乎 (zhihu.com)[1]

rm -rf 指令的可怕之处在于,除了用来删除文件和文件夹,它的操作也是不可逆的,如果不小心写成了sudo rm -rf /*,或者是root 进行了此番操作,那整个系统就完蛋了。

比如:不小心敲了 rm -rf / 后反应是怎样的?- 知乎 (zhihu.com)[2]

那么有没有措施呢?

定义函数与别名

本质思路就是创建一个文件夹,让mv 替代rm,将所有需要删除的文件移动到这个文件夹中,并提供清空该文件夹的选项:

代码语言:javascript
复制
# mkdir ~/.trash
# replace rm with mv
alias rm=trash
alias realrm="/bin/rm"
alias trashlist_full='ll ~/.trash/'
alias trashlist='ld ~/.trash'
function trash
{
    mv $@ ~/.trash/
}
funtion clean_trash
{
    read -p "clear the trash?[y/n] " confirm
    [[ $confirm =~ ^[Yy]$ ]]  && /bin/rm -rf ~/.trash/*
}

直接将上面的内容添加到自己的shell 启动文件,比如我是bash,就加到~/.bashrc

本来的rm 变成了realrm,而现在的rm 则是将选中的文件移动到~/.trash 文件夹下。

此外,trashlist 可以帮助我们列出全部垃圾文件,而clean_trash 则帮助我们清空垃圾文件夹:

其他好用的alias

比如:

  • 我们可以将自己常用的conda 环境的启动命令,写成alias。
  • 经常进入的目录;
  • 常用的命令;

比如我的:高颜值的目录显示工具,https://github.com/Peltoche/lsd, 直接下载安装。

直接用alias 配置:

代码语言:javascript
复制
$ cat ~/.bashrc | grep lsd
alias ll='lsd -lh'

此外,上面的回收站,我们还可以增加一个定时清空的功能。那么,该如何实现呢?

参考资料

[1]

基于文本的Linux为什么没有回收站?- 知乎 (zhihu.com): https://www.zhihu.com/question/32294243

[2]

不小心敲了 rm -rf / 后反应是怎样的?- 知乎 (zhihu.com): https://www.zhihu.com/question/29438735/answer/101838852

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 前言
  • 定义函数与别名
  • 其他好用的alias
    • 参考资料
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档