首页 > 系统教程 > 操作系统 > 为什么在Linux中混为rm命令是一种不良习惯

为什么在Linux中混为rm命令是一种不良习惯

Joseph Gordon-Levitt
发布: 2025-03-19 10:42:15
原创
181 人浏览过

UNIX/Linux中的别名是一个快捷方式,可让您创建自定义命令或修改现有命令的行为方式。通过使用Alias命令,您可以缩写一个长命令,或默认情况下将选项添加到命令中,从而使其更容易或更安全。

但是,在使用别名时,您必须谨慎,尤其是当它们改变RM等强大命令的行为时,避免养成不良习惯或在不同系统上遇到意外行为。

在本简短的教程中,我们将了解为什么将RM与RM -RM -I -I是一个不好的做法。我们还将了解与Linux中RM命令的最佳实践和更安全的替代方案。

目录

为什么有些人将rm的rm和rm -i

当您在UNIX/Linux系统上使用命令RM时,它立即永久删除文件。这是一个强大的命令,必须仔细地使用,以避免意外删除重要文件。

有些人为RM创建一个别名,例如Alias RM =“ RM -I”,以使其更安全。此别名更改RM命令,以在删除任何内容之前始终要求确认。

让我向您展示一个例子,以便您可以更好地理解它。

无别名的RM的示例:

 $ rm exigants-file.txt
登录后复制
登录后复制

此命令将立即删除重要file.txt,而无需询问您是否确定。如果您制作错别字或改变主意,这很快但是有风险。

带别名(RM -I)的RM的示例:

 $ rm exigants-file.txt
登录后复制
登录后复制

使用别名,此命令现在问:“删除常规文件'featign-file.txt'?”您必须输入y(是)才能删除它或n(否)才能取消。感觉更安全,因为它添加了仔细检查您的决定的步骤。

为什么异叠RM命令是一种不好的做法

别名rm ='rm -i'非常危险,因为;

原因1-不良习惯

如果您始终习惯RM命令要求确认,那么您可能会在删除哪些文件时仔细检查一下。

有一天,如果您使用没有该别名集的用户帐户,RM可能会立即删除文件。当您意识到发生了什么事时,可能为时已晚。

这种习惯在没有此别名的情况下也可能是危险的,因为RM会立即删除文件,而无需任何确认。

原因2-行为不一致

如果您使用不同的计算机或系统(例如Office计算机,服务器或朋友的笔记本电脑),则RM命令可能不会有相同的别名。

这种不一致会导致错误,您希望在其中要求确认,但没有意外删除重要的东西。

原因3-脚本和自动化问题

使用RM的脚本也将受到别名的影响。如果脚本期望删除文件而未确认,则该别名可能会导致其卡住,等待响应。这会破坏自动化并引起混乱。

学习正确的习惯

与其依靠别名为安全,不如练习仔细的命令使用。这里有一些提示:

  • 在按Enter之前,请务必仔细检查命令及其将影响的文件。
  • 使用LS命令列出文件并确保您处于正确的目录。
  • 对于关键删除,手动键入RM -I仅针对该实例获得确认提示,而不是使其成为默认行为。
  • 在安全的环境中使用RM,例如具有不重要的测试文件的文件夹,以建立信心和良好的习惯。

更安全的替代品与Aliasing RM命令的替代方案

您可以使用以下任何一个更安全的替代方案,而不是将默认RM命令列为RM -I。

  1. 使用具有不同命令名称的自定义别名
  2. 创建一个更安全的文件删除脚本,将已删除的数据放在垃圾桶目录中
  3. 使用垃圾CLI工具
  4. 使用文件系统快照

1。创建自定义别名

如果要为RM命令创建自定义别名,请完全使用一个不同的名称,例如RMI或RMCLI或MYRM。

例如,我将创建一个名为RMI的别名。

 $ nano〜/.bashrc
登录后复制

最后添加以下行:

别名rmi ='rm -i'
登录后复制

保存文件并关闭。

从现在开始,您应该使用RMI命令来删除文件,而不是默认的“ RM”。

 $ rmi somefile.txt
登录后复制

如果您真的想删除文件,您将被提示。

 RM:删除常规文件“ somefile.txt”?
登录后复制

按“ y”确认文件删除或按“ n”跳过。

创建一个单独的别名,例如Alias rmi ='rm -i'确实是一种更安全,更有效的方法,而不是覆盖RM命令的默认行为。

此方法使您可以在不改变RM的基本行为的情况下具有交互式删除选项,从而降低了由于对别名的过度依赖而导致意外删除的风险。

使用别名rmi ='rm -i'的好处

这就是为什么此替代方案对更安全的文件删除有益的原因:

  1. 明确的区别:它在标准RM命令及其交互式版本之间保持了明确的区别,从而减少了反射性使用RM并期望确认提示的机会。
  2. 不熟悉的系统的风险降低:如果您正在研究一个没有个性化别名的系统,则不小心删除文件的可能性较小,因为您不会习惯依靠RM来要求确认。
  3. 灵活性:您可以选择何时将RMI用于更安全的删除和RM,以更快,非相互交互的删除,具体取决于情况和确定性水平。

2。创建一个更安全的文件删除脚本

在上一个示例中,我们创建了一个名为“ RMI”的自定义命令,该命令在删除文件之前提示确认。另外,您可以编写一个小脚本,其中包括记录并将文件移至垃圾目录以进行以后的审查或恢复。

2.1。创建脚本

创建一个称为RMCLI的文本文件,其中包含以下内容:

 #!/bin/bash
#rmcli:更安全的文件删除脚本

trash_dir =“ $ home/.trash”
log_file =“ $ home/.rmcli.log”

#确保存在垃圾目录
mkdir -p“ $ trash_dir”

#将文件移至垃圾而不是删除
用于“ $@”中的文件;做
    时间戳= $(日期%y-%m-%d_%h-%m-%s)
    trash_path =“ $ trash_dir/$(basename“ $ file”)_ $ timestamp”
    MV -V“ $ file”“ $ trash_path”
    echo“ [$ timestamp] $ file-> $ trash_path” >>“ $ log_file”
完毕
登录后复制

请随时根据您的需求修改脚本,例如更改垃圾目录位置或日志文件格式。保存文件并关闭。

2.2。使脚本可执行:

保存脚本后,您需要使其可执行。这使您可以将其作为命令运行。为此,请使用CHMOD命令:

 $ chmod x rmcli
登录后复制

2.3。将脚本移至路径中的位置:

为了方便起见,您应该将脚本移至系统路径中的位置,以便可以从任何目录运行它。个人脚本的一个常见位置是/usr/local/bin:

 $ SUDO MV RMCLI/USR/local/bin
登录后复制

2.4。使用脚本:

现在,您可以像使用RM一样使用RMCLI命令,但具有脚本的安全功能。

例如:

 $ rmcli somefile.txt
登录后复制

此命令将把somefile.txt移至垃圾目录,而不是永久删除它。

样本输出:

重命名为“ somefile.txt”  - >'/home/ostechnix/.trash/somefile.txt_2024-02-28_16-53-59'
登录后复制

为什么在Linux中混为rm命令是一种不良习惯

您可以通过列出〜/.trash目录的内容来验证它。

 $ ls〜/.trash
登录后复制

为什么在Linux中混为rm命令是一种不良习惯

2.5。恢复文件:

要恢复文件,请导航到垃圾目录(示例中的〜/。trash),然后根据需要将文件移回其原始位置或其他位置。

 $ cd〜/.trash
登录后复制
 $ mv somefile.txt_2024-02-28_16-53-59〜/somefile.txt
登录后复制

2.6。记录:

该脚本用时间戳登录每个“删除”。确保脚本中指定的日志文件位置存在或可写。您可以查看此日志,以查看哪些文件已移至垃圾桶。

 $ cat $ home/.rmcli.log
[2024-02-28_16-53-59] somefile.txt-> /home/ostechnix/.trash/somefile.txt_2024-02-28_16-53-59
登录后复制

3。使用垃圾桶

RM的另一个更安全的替代方法是使用命令行垃圾桶罐,例如Trash-Cli ,它将文件移至垃圾目录而不是永久删除它们。如果需要,这允许恢复文件。

要知道如何安装和使用垃圾CLI,请检查以下链接:

垃圾场:命令行垃圾桶,用于Unix式系统

4。使用支持快照的文件系统

使用支持无限快照的文件系统,例如BTRF (B-TREE文件系统)或ZFS (Zettabyte文件系统),是维护因意外文件删除或覆盖而保护的绝佳策略。

快照本质上是在特定时间点上的文件系统的仅读取副本,但在时空上都高效,因为它们仅存储与以前的快照的差异。

如何在OpenSuse中使用快照器创建和管理BTRFS快照

5。其他更安全的做法

  1. 详细模式:使用带有RM或您的别名的详细选项(-v)获取被删除的内容的详细输出。这可以在错误发生之前有助于捕获错误。例如,Alias rmi ='rm -i -v'。
  2. 脚本保障:对于经常以批量或脚本删除文件的用户,请考虑在RM附近编写包装脚本,其中包括记录已删除的文件或需要明确确认以上删除一定阈值(例如,文件数量,文件大小)。
  3. 教育和实践:定期教育自己和他人有关命令行操作的含义和实践安全文件管理习惯的影响。这包括在删除之前对当前目录(PWD),列表文件(LS或LA)进行仔细检查,并谨慎使用绝对路径。

结论

虽然将RM降低到RM-我似乎是一个很好的安全措施,但它可能会导致没有设定别名的环境中的过度自信和错误。

通过采用这些技巧和最佳实践,您可以通过UNIX/Linux系统上的RM命令显着降低与意外文件删除相关的风险。

相关阅读:

  • AutoTrash - 一种在Linux中自动清除旧文件的CLI工具
  • 删除在Linux上给定时间尚未访问的文件
  • 一种保护文件免受Linux中意外删除的简单方法

以上是为什么在Linux中混为rm命令是一种不良习惯的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板