oops 是一个撤销守护进程,会在 rm、mv、sed -i、> 等破坏性 shell 命令执行前对目标文件进行快照,以便用户撤销误操作。

Stars

8

7 天增长

暂无数据

Fork 数

0

开放 Issue

0

开源协议

MIT

最近更新

2026-07-31

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它直接在 shell 中增加安全网:破坏性命令会在执行前被拦截,并对受影响文件进行快照,用户只需一条 `oops` 命令即可撤销误操作。

适合谁使用

  • 经常在终端执行破坏性命令的开发者和高级用户
  • 通过 shell 管理服务器或工作站的系统管理员
  • 使用 bash/zsh/fish 并希望为 CLI 操作增加安全网的用户

典型使用场景

  • 恢复被 rm 误删的文件
  • 撤销 sed -i 或重定向造成的就地修改
  • 在执行 git reset --hard 等破坏性 git 命令前先做好快照并恢复
  • 浏览并恢复最近 48 小时或 2 GB 存储内的快照

项目优势

  • 通过 shell preexec 钩子和后台守护进程自动拦截破坏性命令
  • 在 Btrfs/ZFS 上使用 reflink 复制,其他平台使用普通复制,并用 SQLite 存储元数据
  • 提供 TUI 命令(list/diff)和快照固定(pin)以避免被垃圾回收
  • 恢复旧快照时通过 mtime 检测冲突,避免覆盖独立修改的文件

使用前须知

  • 无法拦截来自 cron、systemd 服务、GUI 程序、未加载钩子的脚本或非交互式 shell 的命令
  • 需要用户 systemd 服务和 shell 钩子设置,且仅支持 Linux
  • 默认保留期仅为 48 小时或 2 GB,除非固定快照

README 快速开始

Crate Downloads MSRV License Platform PRs

Undo daemon for destructive shell commands

Before rm, mv, sed -i, >, git reset --hard, and friends run, their target files get snapshotted — so you can undo the damage.

oops

→ undoes whatever you just broke.


Install

cargo build --release
install -Dm755 target/release/oops ~/.local/bin/oops
install -Dm644 systemd/oopsd.service ~/.config/systemd/user/oopsd.service
systemctl --user daemon-reload
systemctl --user enable --now oopsd
loginctl enable-linger "$USER"
eval "$(oops init bash)"   # or: zsh, fish

Commands

CommandDescription
oopsUndo the most recent restorable snapshot
oops undo [id]Undo a specific snapshot (default: newest)
oops listBrowse snapshot history (TUI, ↑↓/jk to navigate)
oops diff Show files captured in a snapshot (TUI)
oops statusDaemon status, storage usage, l

项目描述

🛡️ Undo daemon for destructive shell commands

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

l0ng-ai
精选
l0ng-ai GitHub avatar

tty7

tty7 is a fast, GPU-accelerated terminal workbench with persistent sessions, built-in input tools, SSH support, and coding agent awareness.

开发者工具CLI 与终端
359
programmersd21
精选
programmersd21 GitHub avatar

flow

flow is a minimalist terminal dashboard that displays real-time network throughput with smooth animations, multiple responsive modes, and zero configuration.

开发者工具CLI 与终端
277
bjan
精选
bjan GitHub avatar

claudemux

Claudemux is a lightweight, dependency-minimal message bus that lets multiple Claude Code sessions communicate in real-time over tmux, enabling one session to ask another a question and receive the answer without manual intervention.

AI 与机器学习AI 智能体
9