Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >给 “rm” 命令添加个“垃圾桶”

给 “rm” 命令添加个“垃圾桶”

作者头像
CPP开发前沿
发布于 2022-03-03 03:19:38
发布于 2022-03-03 03:19:38
8020
举报
文章被收录于专栏:CPP开发前沿CPP开发前沿

英文:2daygeek,

做过linux同学的人都知道,在linux系统中使用 rm -rf *时会将文件永久删除,这也是我们在操作时禁止使用这个命令的原因。本文将介绍一个方法可以让rm命令删除的文件暂时不被彻底删除,而是像windows那样先丢进垃圾箱。

有人在看关于 Trash-Cli 的文章时从评论部分那里获得了一个关于 saferm.sh 脚本的更新,这个脚本就可以实现我们的目的。

这个脚本会根据用户的定时设置自动的对 GNOMEKDE、Unity 或 LXDE 桌面环境(DE)进行识别,然后将文件或文件夹安全地移动到默认垃圾箱 $HOME/.local/share/Trash/files,如果没有此目录则会在您的主目录中创建垃圾箱文件夹 $HOME/Trash。

saferm.sh 脚本目前托管在 Github 中,可以按照下面的命令获取改脚本。

$ 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

或者我们可以通过文件管理器界面中查看相同的内容。

(LCTT 译注:原文此处混淆了部分 trash-cli 的内容,考虑到文章衔接和逻辑,此处略。)

要了解 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.

- EOF -

图文:龙小

排版:龙小

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CPP开发前沿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【教程】Linux使用git自动备份和使用支持文件恢复的rm命令
首先非常不幸地告诉你:Linux 系统的标准 rm 命令不支持文件恢复功能。一旦使用 rm 删除了文件或目录,它们就会从文件系统中永久删除,除非你使用专门的文件恢复工具尝试恢复这些文件。
小锋学长生活大爆炸
2024/02/23
3360
【教程】Linux使用git自动备份和使用支持文件恢复的rm命令
防止“rm-rf/”误删除的5种方法
到周四了,大家好啊,在raksmart服务器Linux系统下防止“rm -rf /”误删除,不解释了,运维应该在每台服务器都去配置这个问题以减少灾难的发生,下面就是防止误删除的方法。 1、safe-rm safe-rm是一个开源软件用来替代不太安全的rm,可以在/etc/safe-rm.conf中配置路径黑名单,定义哪些不能被safe-rm删除。 可以将safe-rm更名为rm并放在$PATH中比原rm程序靠前的位置,或者使用alias设置。一些脚本中使用完全路径/bin/rm则不会受此影响。 $ rm -
企鹅号小编
2018/01/19
1.8K0
运维管理之防止"rm -rf /" 误删除
大概懂点linux的程序员都知道“rm -rf /”意味着擦除根路径“/”下挂载的所有内容而无需询问。以前一个主管说过,在你不充分了解某个工具的原理的时候,不要太过相信依赖他。哪怕自己去写个简陋的,可以看到源码,也是比较靠谱的。深信不疑!
lyb-geek
2018/07/26
3.3K0
拯救手抖误删除操作的神器
•实现机制类似win上的垃圾箱,在当前用户目录下创建一个隐藏目录,用户删除的文件都会被挪到这个目录下•前提是要做好rm -rf的别名•受限于磁盘空间大小•如果机器本身磁盘空间就比较小,待删除的东西又是大文件,很容易会造成机器磁盘撑爆•不过这一步可以使用定时任务来弥补,默认保留2天,不需要就通过定时来清空伪装的垃圾箱, 一定要记得及时清理哈
追马
2020/07/06
4170
使用trash-cli防止rm -rf 误删除带来的灾难(“事前”非“事后”)
今天是一个难忘的日子,当时本来想清除主机上面data目录下的mysql8.0相关的数据文件的,进入mysql8.0的数据文件所在路径下,结果在执行rm -rf ./data/* 时打成了rm -rf /data/* ,一个回车下去,结果就悲剧了。整个/data目录下的所有文件全部删除了,瞬间奔溃了,真是欲哭无泪,索性之前主机做了快照备份的,立即回滚快照。
SEian.G
2021/03/03
6700
rm -rf 又一起惨案,该给Linux整一个回收站了!
没错!懂一点Linux 基础的都明白这个命令! rm -rf 。 这个命令用不好的话,杀伤力奇高!
星泽V社
2022/03/02
9810
Linux系统之rm命令的基本使用
rm(remove)是Linux系统中用于删除文件和目录的核心命令之一。它以高效著称,但同时也因不可逆操作的特性被称为“危险命令”。本文将详细介绍其基本用法、常见场景及安全建议,帮助新手正确使用该命令。
江湖有缘
2025/05/11
950
Linux系统之rm命令的基本使用
日常shell练习题-03(持续更新…)
打印乘法口诀 #! /bin/bash ##printing 9*9 list ##written by zhdya_20171004 for m in `seq 1 9` do for n in `seq 1 $m` do dd=$[$m*$n] echo -ne "$n x $m = $dd \t" done echo done 写脚本,用来实现交换两个文件或目录的名字。 #! /bin/bash ##change the file or dir's name. ##writ
老七Linux
2018/05/31
1.1K0
Linux 下回收站机制
Linux下删除文件不像Windows那样,删除文件放入回收站. 而是通过rm 命令删除文件.文件一般无法找回, 就是这种机制,每次带来的都是巨大的教训. 为此这里实现一个简易的回收站机制: 功能: rm 删除的文件备份到指定的文件夹 每天定时清理  步骤1 写个shell脚本替换rm命令,或者在需要删除文件的时候使用mv命令将文件移动到回收站. 家目录(~)新建一个隐藏文件夹: mkdir .trash 家目录(~)新建tool文件夹,存放remove.sh, 脚本内容如下 : 脚本主要是把文件根
程序手艺人
2018/05/18
3.2K0
将linux下的rm命令改造成mv到指定的目录下
来源:博客园-BigBao的博客 链接:http://www.cnblogs.com/smail-bao/p/6347347.html(点击文末阅读原文前往) 小编语: 昨晚一条新闻刷爆朋友圈,GitLab.com一位身处荷兰的疲惫系统管理员在进行数据库复制过程中不小心在一台错误的服务器上删除了一个目录,他删除了一个包含300GB实时产品数据的文件夹,在取消rm -rf删除命令后该文件夹只剩下4.5GB 数据(http://www.chinaz.com/server/2017/0202/651410.sht
java达人
2018/01/31
3K0
linux封装rm -rf指令,防止误删(转)
对于一个linux新手,敲错指令是常有的事情,智者千虑必有一失,即使对于一个老司机来说,也难免会有操作失误的时候,而误删导致的后果往往是无法弥补的。与其在误删数据后懊悔,不如趁早寻求方法避免这种错误的发生。这里采用alias对rm指令设置别名,使得执行rm指令的时候,实际上执行了mv指令而将需要删除的文件放到自己建立的回收站之中。
wuweixiang
2019/03/12
2.5K0
Linux 快捷键汇总(偏基础)
  自己最近才搭上Linux末班车,有一种想见恨晚的感觉,完全给你一种快速清爽的感觉!   因为需要,所以学习,记录自己在使用Linux系统上的点滴,偏基础! 1、 打开终端: Ctrl+Alt+T 2、 复制命令: Ctrl + Shift + C 组合键. 3、 粘贴命令: Ctrl + Shift + V 组合键 4、 清空垃圾箱: rm -fr $HOME/.local/share/Trash/files/* 5、 屏幕截图: shift+PrntScr (区域截图) 6、 查找文件: find /
waylon
2018/03/08
1.1K0
临近五一,小林我删删删删库了,要跑路吗?
写个简单的 Bash 脚本都不上心了,写完连检查都不检查,直接拖到到实体服务器跑。
小林coding
2020/05/18
2.8K0
临近五一,小林我删删删删库了,要跑路吗?
Shell把rm改造为mv操作(防止误删文件)
很多情况下我们使用rm删除文件是没问题的,但是惯性会把rm加上rm -rf 来删除文件,跳过确认。 但是这样会出现误伤的情况,假如我们使用rm -rf ./是没问题的,但是手一抖,用成了rm -rf
刺_猬
2018/06/21
1.9K0
rm -rf 又一起惨案,该给Linux整一个回收站了!
没错!懂一点Linux 基础的都明白这个命令!rm -rf 。这个命令用不好的话,杀伤力奇高!
释然IT杂谈
2022/10/27
1.6K0
rm -rf 又一起惨案,该给Linux整一个回收站了!
Linux命令行基础
AT&T公司于20世纪70年代发布了UNIX系统。经过多年的发展,Unix不再是某一个具体操作系统的名称,而是对遵循Unix规范、设计和哲学的一类操作系统的统称。还有一些操作系统,它们遵循Unix设计、有着与Unix类似的规范和标准,这些操作系统被称为类Unix系统(Unix-like),Linux就是其中的一员。
雪飞鸿
2019/09/02
11.3K0
Linux命令行基础
【程序猿硬核科普】由最近的删库事件联想到的一些看法 | 更改rm命令实现Linux下的回收站机制
比如研发人员无法对数据库本身进行操作,只能通过页面级的控制台进行数据项的更新及简单运维操作,部分敏感表或数据项的操作需主管审批。
浩Coding
2020/03/04
9360
替换Linux下的rm命令
1、编写脚本 vi /home/scripts/del.sh 内容如下: #!/bin/bash # Description: 替换rm命令,不是删除文件,而是移动文件到/tmp/trash_tmp/ TMP_DIR="/tmp/trash_tmp" mv $@ $TMP_DIR 2、赋予权限 chmod +x /home/scripts/del.sh mkdir -p /tmp/trash_tmp chmod 777 /tmp/trash_tmp 3、修改环境变量 vi .bashrc 增加一条 al
保持热爱奔赴山海
2019/09/18
4K0
避免rm -rf 引发惨案
在Linux中,rm是一个高效的工具,但是有时能带来灾难性的后果。敲一个rm -rf *就可能让今天的工作白做了,及时发现问题的话用debugfs也许能挽回损失,但是万一,万一磁盘数据被覆盖了呢?
后端技术探索
2018/08/10
1K0
告别从删库到跑路
https://github.com/pedroqin/shell_script/tree/master/linux_recycle_bin
PedroQin
2019/12/18
7010
推荐阅读
相关推荐
【教程】Linux使用git自动备份和使用支持文件恢复的rm命令
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档