英文:2daygeek,翻译:Linux中国/amwps290
linux.cn/article-9425-1.html

人类犯错误是因为我们不是一个可编程设备,所以,在使用 rm 命令时要额外注意,不要在任何时候使用 rm -rf *。当你使用 rm 命令时,它会永久删除文件,不会像文件管理器那样将这些文件移动到 “垃圾箱”。

有时我们会将不应该删除的文件删除掉,所以当错误地删除了文件时该怎么办? 你必须看看恢复工具(Linux 中有很多数据恢复工具),但我们不知道是否能将它百分之百恢复,所以要如何解决这个问题?

将文件移动到“垃圾桶”是一个好主意,当你无意中运行 rm 命令时,可以拯救你;但是很少有人会说这是一个坏习惯,如果你不注意“垃圾桶”,它可能会在一定的时间内被文件和文件夹堆积起来。在这种情况下,我建议你按照你的意愿去做一个定时任务。

这适用于服务器和桌面两种环境。 如果脚本检测到 GNOME 、KDE、Unity 或 LXDE 桌面环境(DE),则它将文件或文件夹安全地移动到默认垃圾箱 $HOME/.local/share/Trash/files,否则会在您的主目录中创建垃圾箱文件夹 $HOME/Trash

saferm.sh 脚本托管在 Github 中,可以从仓库中克隆,也可以创建一个名为 saferm.sh 的文件并复制其上的代码。

$ git clone https://github.com/lagerspetz/linux-stuff
$ sudo mv linux-stuff/scripts/saferm.sh /bin
$ rm -Rf linux-stuff

.bashrc 文件中设置别名,

alias rm=saferm.sh

执行下面的命令使其生效,

$ source ~/.bashrc

一切就绪,现在你可以执行 rm 命令,自动将文件移动到”垃圾桶”,而不是永久删除它们。

测试一下,我们将删除一个名为 magi.txt 的文件,命令行明确的提醒了 Moving magi.txt to $HOME/.local/share/Trash/file

$ rm -rf magi.txt
Moving magi.txt to /home/magi/.local/share/Trash/files

也可以通过 ls 命令或 trash-cli 进行验证。

$ ls -lh /home/magi/.local/share/Trash/files
Permissions Size User Date Modified Name
.rw-r--r-- 32 magi 11 Oct 16:24 magi.txt

要了解 saferm.sh 的其他选项,请查看帮助。

$ saferm.sh -h
This is saferm.sh 1.16. LXDE and Gnome3 detection.
Will ask to unsafe-delete instead of cross-fs move. Allows unsafe (regular rm) delete (ignores trashinfo).
Creates trash and trashinfo directories if they do not exist. Handles symbolic link deletion.
Does not complain about different user any more.
Usage: /path/to/saferm.sh [OPTIONS] [--] files and dirs to safely remove
OPTIONS:
-r      allows recursively removing directories.
-f      Allow deleting special files (devices, ...).
-u      Unsafe mode, bypass trash and delete files permanently.
-v      Verbose, prints more messages. Default in this version.
-q      Quiet mode. Opposite of verbose.

利用linux-stuff给 “rm” 命令增加回收站相关推荐

  1. 为rm命令增加回收站功能

    为rm命令增加回收站功能 我的实验环境是ubuntu 14.04. 背景 用rm删除文件的同时会删除inode信息,这使得使用rm删除的文件很难恢复.特别是带有-rf参数时,一定要慎之又慎. 我希望用 ...

  2. OpenWares | Open Source and Free Matters » 为rm命令增加回收站功能

    OpenWares | Open Source and Free Matters » 为rm命令增加回收站功能 为rm命令增加回收站功能 March 11th, 2011 openwares Leav ...

  3. linux系统rm什么命令,linux系统中rm命令的详细解释

    Linux系统中rm命令其实是remove的意思,删除一个或多个文件目录,下面由学习啦小编为大家整理了linux系统中rm命令的详细解释,希望对大家有帮助! linux系统中rm命令的详细解释 1.命 ...

  4. linux下修改rm命令防止误删除

    前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾.那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用. ...

  5. linux无法将文件移入回收站,linux中使用rm命令将文件移到回收站的方法

    今天在终端下,看到我的用户目录下有个-的文件夹(maven生成),相要删除收回点空间,习惯性的用命令 rm -rf ~ ,一回车,猛然想起的时候已经来不及了,世界一下子清静了,想死的心都有了! 没错, ...

  6. Linux基本操作(6)——Linux 重写rm 命令 实现回收站功能

    rm -rf 是一个极其危险的操作,而且linux端不像windows,有回收站的后悔药可以吃,所以一旦误操作,就会造成不可挽回的后果. 今天通过shell重写,在linux端实现一个回收站的功能,可 ...

  7. 为rm添加一个回收站|将linux下的rm命令改造成mv到指定的目录下

    怕误删文件或目录,怕将辛辛苦苦写的东西删除! 就把rm换掉,简单几步做个回收站. 第一步创建回收站目录 mkdir -p ~/.trash //创建一个目录作为回收站,这里使用的是用户家目录下的.tr ...

  8. Linux 危险的 rm 命令,替换 trash

    都是血与泪的痛苦教训 之前就一直听说删库跑路,谁谁谁把系统删了.打死都没想到我也会意外使用rm 导致错误删除写了一天的代码... 问题是这样:重复调试修改某块代码时,由于懒的写 脚本 ,当目录下存在 ...

  9. Linux 之禁用rm 命令

    首先我们要知道在Linux中rm能删除各类文件夹和文件,有些时候由于手抖删除了不该删除的东西导致事情非常严重,所以在某些机器上直接禁用rm命令. vim /etc/profile #末行添加: ali ...

最新文章

  1. 这51个大数据术语,你懂的有几个?
  2. Groovy学习()面向Java开发者的Groovy
  3. go和java线程,Go的多线程和pthread或Java线程有什么区别?
  4. Python中常用的高阶函数
  5. QDoc格式特定的配置变量
  6. 数据库备份DBS提供异常任务自助修复
  7. 信用卡如何安全取现?
  8. python3.8爬虫_python爬虫系列(3.8-正则的使用)
  9. 经典排序算法及其Python实现
  10. Git提交失败之 Updates were rejected because the tip of your current branch is behind
  11. Python 爬虫技巧
  12. HDU 4296 building
  13. Linux和Solaris系统上添加默认路由和静态路由方法
  14. php 度分秒和小数转化
  15. 数据结构-图的应用-最小生成树(类C语言版)
  16. hive hue 中文乱码的问题
  17. 浏览器自动化操作(Web Browser Automation)(一)
  18. Word2007从指定页插入页码,不包括封面和目录,指定页为首页第1页
  19. 英语口语网站免费学习资源大全
  20. poedb.tw itemgen.php,流放之路【POE】【异界地图】初步了解如何开始打异界

热门文章

  1. 华为手机电池有虚电?输入这串神奇的代码,一键显示真实电量
  2. Office如何在文稿中嵌入字体(macOS)
  3. pm2安装与使用(生产环境部署)
  4. LoadRunner安装教程(和中文版安装)
  5. 质数的后代c语言,数学家张益唐破译“孪生素数猜想”--科技--人民网
  6. 什么是PV,UV,PR值
  7. matlab 累积距平,近56年长春市气温变化特征研究
  8. C++单冒号与双冒号的作用
  9. 互联网三大巨头宣布将支持FIDO无密码登录,虹膜识别被纳入其中
  10. 寻找大智慧软件动态链接库函数之一