使用Git版本控制系统(适用于已纳入Git管理的文件)
Git是跟踪文件历史记录的常用工具,适用于代码、文本等文件。需先初始化仓库并提交文件,再通过命令查看历史。
sudo apt update && sudo apt install git命令安装。git init,创建本地Git仓库。git add <filename>添加文件到暂存区,git commit -m "提交信息"提交更改(如git commit -m "Initial commit")。git log <filename>显示文件的提交哈希、作者、日期及提交信息;git log -p <filename>显示每次更改的具体内容差异;git log --follow <filename>跟踪文件重命名后的历史。使用find与stat命令(适用于未纳入版本控制的文件)
若文件未被Git等工具管理,可通过find结合stat命令查看文件的修改时间。
find /path/to/directory -type f -name "<filename>" -exec stat --format="%y %n" {} \; | sort
/path/to/directory:目标目录路径(如/home/user/documents);-name "<filename>":指定文件名(支持通配符,如*.txt);stat --format="%y %n":显示文件的修改时间(%y)及文件名(%n);sort:按时间排序,便于查看历史变更顺序。使用inotifywait实时监控文件变化(适用于需要实时跟踪的场景)
inotifywait可实时监控文件的修改、删除等事件,适合需要即时了解文件变化的场景。
sudo apt install inotify-tools命令安装。inotifywait -m -e modify /path/to/file(-m表示持续监控,-e modify表示监控修改事件),终端会实时显示文件的修改信息。使用auditd审计系统调用(适用于系统级详细审计)
auditd是Linux审计工具,可记录文件访问、修改等系统调用,适合需要详细审计的场景。
sudo apt install auditd audispd-plugins安装,sudo systemctl start auditd启动服务,sudo systemctl enable auditd设置开机自启。sudo auditctl -w /path/to/file -p wa -k file_changes(-w指定监控路径,-p wa监控写入和属性更改,-k设置自定义关键字)。ausearch -k file_changes命令查看指定关键字的审计日志,包含文件修改的时间、用户及操作详情。查看软件包级别的历史记录(适用于软件包安装/更新历史)
若需查看Debian系统中软件包的安装、更新历史,可通过以下日志文件获取:
sudo apt install vim的记录),可使用grep "install vim" /var/log/apt/history.log搜索特定软件包的安装记录。zgrep "upgrade" /var/log/dpkg.log.*查看压缩日志中的升级记录。