【linux】预防rm误删文件的3种方法

ops/2024/10/18 8:28:36/

文章目录

  • 预防误删事故的三种方法
    • 1. 使用别名
      • 注意事项:
      • 使用 `vim` 编辑配置文件
    • 2. 启用回收站
    • 3. 只读文件系统


预防误删事故的三种方法

在Linux系统中,误删文件或目录可能会导致数据丢失和系统故障。本文将重点介绍三种有效的预防误删事故的方法:

使用别名、启用回收站、以及配置只读文件系统。

1. 使用别名

Linux系统中的rm命令是一个强大的工具,用于删除文件和目录。然而,一次疏忽可能会删除不该删除的重要文件。为了解决这个问题,我们可以通过创建别名来保护rm命令,使其更加安全。

首先,我们可以将rm命令替换为一个交互式命令,提示用户确认删除操作。只需在你的Shell配置文件(如~/.bashrc~/.zshrc)中添加以下行:

alias rm='rm -i'

添加完上述行后,保存文件并执行以下命令使其生效:

若在root目录下直接运行 alias rm='rm -i' 命令会立即在当前终端会话中生效,
故可以不输入一下这段命令

source ~/.bashrc  # 或者 source ~/.zshrc

注意事项:

当你直接在终端中输入并运行 alias rm='rm -i' 时,别名在当前终端会话中立即生效。这个操作与在配置文件中添加别名有以下不同:

  • 即时定义:直接运行 alias 命令会在当前终端会话中立即定义别名。
  • 会话范围:这种别名定义只在当前终端会话中有效。如果你关闭这个终端窗口并重新打开,别名将不再有效,除非你再次运行 alias 命令或在配置文件中定义并加载。

若想要每次登录时都能自动使用别名,则需要编辑配置文件

以下是使用vim进行配置的步骤:

使用 vim 编辑配置文件

vim 是一个功能强大的终端文本编辑器,通常预装在大多数Linux发行版中。

  1. 编辑 ~/.bashrc 文件
vim ~/.bashrc
  1. 进入编辑模式: 在 vim 中,按 i 进入插入模式,然后在文件末尾添加以下行:
alias rm='rm -i'
  1. 保存并退出: 按 Esc 键退出插入模式,然后输入 :wq 并按 Enter 保存并退出编辑器。
:wq

:若:wq无法保存,就使用:wq!命令再按Enter 退出编辑器。

2. 启用回收站

大多数现代操作系统都提供了回收站功能,当你删除文件时,它们会被移动到回收站,而不是立即永久删除。在Linux中,可以使用trash-cli工具实现类似功能。

首先,安装trash-cli

sudo apt install trash-cli

安装完成后,可以使用trash-put命令代替rm命令来删除文件。这样,文件会被移动到回收站,而不是立即删除:

trash-put filename

如果需要恢复误删的文件,可以使用trash-list命令查看回收站中的文件,并使用trash-restore命令恢复文件:

trash-list
trash-restore

3. 只读文件系统

对于不需要频繁修改的目录或分区,可以将其设置为只读,以防止误删操作。这种方法特别适用于关键配置文件或备份数据。

要将某个分区挂载为只读,可以修改/etc/fstab文件。在文件中添加或修改相应分区的挂载选项,将其设置为只读。例如:

/dev/sdX /mount/point ext4 ro,defaults 0 2

保存修改后,执行以下命令重新挂载分区:

sudo mount -o remount,ro /mount/point

这样,该分区将被挂载为只读,任何删除或修改操作都会被系统拒绝,从而保护文件的安全。


通过结合这些方法,可以显著降低Linux系统中误删文件或目录导致事故的风险。使用别名可以增加删除操作的安全性,启用回收站可以提供一个恢复误删文件的途径,而配置只读文件系统则可以保护关键数据不被修改或删除。希望这些方法能帮助你更好地管理和保护Linux系统中的数据。



http://www.ppmy.cn/ops/57227.html

相关文章

高效利用iCloud:全面指南与技术深度解析

引言 在数字化时代,数据的同步、备份和跨设备协作变得尤为重要。苹果公司的iCloud服务凭借其强大的云存储和同步功能,为用户提供了一个无缝的数据管理解决方案。本文将全面介绍如何高效利用iCloud,帮助用户更好地管理数据、提升工作效率&…

java算法day15

java算法day15 -113 路径总和 Ⅱ 437 路径总和 Ⅲ543 二叉树的直径 113 路径总和Ⅱ 直接套用Day14总结的自顶向下的模板中的路径总和模板,直接就完了. 题目中一定要看好题,只要到叶子节点的. 但是由于我用的是回溯,所以一旦到达叶子节点不建议return,而是回溯,之前老是喜欢…

力扣1021.删除最外层的括号

力扣1021.删除最外层的括号 遍历所有字符 当)时 栈顶元素出栈当(时 入栈当栈为空时 说明恰好扫描了一个原语这个原语的首尾字符不应该放入答案因此调整if判断顺序使首尾不放进去即可 class Solution {public:string removeOuterParentheses(string s)…

UDP 报文结构与注意事项全解析

在网络通信中,UDP(User Datagram Protocol,用户数据报协议)是一种无连接、不可靠的传输层协议。尽管它不如 TCP 那样提供可靠的传输服务,但在某些特定场景中,UDP 因其简单高效而备受青睐。 一、UDP 报文结…

【LeetCode】有效的括号

目录 一、题目二、解法完整代码 一、题目 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 …

Qt图形编辑类使用总结-QGraphicsView、QGraphicsScene类及QGraphicsItem类

Qt的图形编辑通常会涉及以下三个类:QGraphicsView类、QGraphicsScene类及QGraphicsItem类。 QGraphicsView 是构建复杂图形用户界面的强大工具,尤其适用于那些需要动态更新、可交互的2D图形化应用程序,如图表绘制、流程图编辑器、游戏地图显示等等。通过结合使用 QGraphics…

【TVM 教程】使用 TVM 部署框架预量化模型

本文介绍如何将深度学习框架量化的模型加载到 TVM。预量化模型的导入是 TVM 中支持的量化之一。有关 TVM 中量化的更多信息,参阅 此处。 这里演示了如何加载和运行由 PyTorch、MXNet 和 TFLite 量化的模型。加载后,可以在任何 TVM 支持的硬件上运行编译…

EMR 集群时钟同步问题及解决方案An error occurred (InvalidSignatureException)

目录 1. 问题描述2. 问题原因3. 解决过程4. 时钟同步的重要性5. Linux 系统中的时钟同步方式6. 检查 Linux 系统时钟同步状态7. EMR 集群中的时钟同步配置8. 时钟同步对大数据组件的影响9. 监控和告警策略10. 故障排除和最佳实践11. 自动化时钟同步管理12. 时钟同步与数据一致性…