You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写可监控终端命令并拦截rm操作的Bash脚本?

实现终端命令监控与确认脚本(以rm为例)

要实现监控终端输入并对特定命令(如rm)添加确认环节,最直接的方式是用Bash函数覆盖系统原命令,以下是具体实现:

脚本代码

# 定义自定义rm函数,覆盖系统默认rm
rm() {
    # 提示用户确认操作
    read -p "你确定要执行删除操作吗?输入Y确认:" confirm
    # 判断用户输入是否为Y(不区分大小写)
    if [[ "$confirm" =~ ^[Yy]$ ]]; then
        # 执行真实的rm命令,传递所有参数
        command rm "$@"
    else
        # 取消操作提示
        echo "删除操作已取消"
    fi
}

使用说明

  1. 临时生效:直接将上述代码粘贴到终端中执行,当前会话内的rm命令就会触发确认提示。
  2. 永久生效:将代码添加到你的~/.bashrc或~/.bash_profile文件末尾,执行source ~/.bashrc(或对应文件)使修改立即生效,之后每次打开终端都会自动加载这个函数。

扩展说明

  • 如果需要监控其他命令(如mv、cp),可以用同样的逻辑编写对应的函数,比如:
    mv() {
        read -p "你确定要移动文件吗?输入Y确认:" confirm
        if [[ "$confirm" =~ ^[Yy]$ ]]; then
            command mv "$@"
        else
            echo "移动操作已取消"
        fi
    }
    
  • 用command关键字是为了避免函数递归调用自身,确保执行的是系统原生的命令。
  • 正则表达式^[Yy]$用来匹配大小写的Y,保证用户输入y或Y都能触发执行。

内容的提问来源于stack exchange,提问作者zzzr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:22:35