如何在Linux环境下通过NEdit的Shell实现文件自动保存备份功能
Linux环境NEdit自动备份文件的实现方案
NEdit官方标注的「Make Backup Copy」功能仅支持Unix系统,Linux环境下可以通过以下两种实践方案实现同等甚至更灵活的自动备份需求:
方案1:自定义NEdit宏(无需额外依赖,优先推荐)
直接修改NEdit的保存逻辑,触发保存时自动生成备份:
- 打开NEdit界面,依次进入「首选项」→「自定义菜单」→「宏命令」
- 新建宏,命名为带备份保存,输入如下宏代码:
save_file() { if (file_modified) { system("cp " + escape_filename(file_path) + " " + escape_filename(file_path) + ".bck") save() } } - 将该宏绑定到原默认保存快捷键(如Ctrl+S),后续每次触发保存操作时,会先拷贝当前编辑的原文件生成后缀为
.bck的备份副本,再执行正式写入保存。
方案2:独立目录监控脚本(不修改NEdit原有配置)
如果不想改动NEdit的默认设置,可以通过文件系统事件监控实现自动备份:
- 先安装监控依赖工具inotify-tools:
Debian/Ubuntu系发行版执行:sudo apt install inotify-tools
RHEL/CentOS/Fedora系发行版执行:sudo dnf install inotify-tools - 编写监控脚本,内容如下:
`#!/bin/bash
替换为你存放开发脚本的目标目录
WATCH_DIR="/home/yourname/dev/scripts"
inotifywait -m -e close_write --format '%w%f' "$WATCH_DIR" | while read -r FULL_FILE_PATH
do
# 可自行修改规则匹配你要备份的文件后缀
if [[ "$FULL_FILE_PATH" =~ .(sh|py|pl|js)$ ]]; then
cp "$FULL_FILE_PATH" "${FULL_FILE_PATH}.bck"
# 如需按时间戳保留多份备份,可以替换上一行为:
# cp "$FULL_FILE_PATH" "${FULL_FILE_PATH}.$(date +%Y%m%d%H%M%S).bck"
fi
done`
- 给脚本添加执行权限:
chmod +x nedit_auto_backup.sh,后台运行即可,只要NEdit完成文件保存写入,就会自动生成对应的备份文件。
两种方案都支持自定义调整备份规则,比如指定备份存储目录、保留多份历史版本、过滤不需要备份的文件类型等,灵活性高于NEdit原生备份功能。
内容的提问来源于stack exchange,提问作者Hsu Yu-Wei Auston
相关产品推荐
相关产品推荐

