linux⼀unix下怎样记录文件的修改操作

2024-11-23 05:24:35
推荐回答(4个)
回答(1):

主要是有四个命令:
svn log用来展示svn 的版本作者、日期、路径等等;
svn diff,用来显示特定修改的行级详细信息;
svn cat,取得在特定版本的某文件显示在当前屏幕;
svn list,显示一个目录或某一版本存在的文件。
比较常用的是svn diff命令。可以比较不同版本之间、svn版本和本地版本库之间,以及检查本地修改的作用。
svn diff; #什么都不加,会坚持本地代码和缓存在本地.svn目录下的信息的不同;
svn diff -r 3; #比较本地代码和版本号为3的所有文件的不同;
svn diff -r 3 text.c; #比较本地代码和版本号为3的text.c文件的不同;
svn diff -r 5:6; #比较版本5和版本6之间所有文件的不同;
svn diff -r 5:6 text.c; #比较版本5和版本6之间的text.c文件的变化。
查看修改的信息使用 log 指令,如下:
svn log; #什么都不加会显示所有版本commit的日志信息;
svn log -r 4:5; #只看版本4和版本5的日志信息;
svn log test.c; #查看文件test.c的日志修改信息;
svn log -v dir; #查看目录的日志修改信息,需要加v;
查看某个版本的某个文件内容,使用cat指令,如下:
svn cat -r 4 test.c; #查看版本4中的文件test.c的内容,不进行比较。

回答(2):

你试试使用这个命令看看有没进程连接着这个文件: lsof|grep 'file'
如下:
java 7197 root 148w REG 8,2 4296399 9180560 /logs/test.log
可以缩小范围,至少可以知道是root用户的进程IP为7197的java进程有可能读写这个文件

回答(3):

没有办法记录。

如果该文件不应该被修改,可以考虑用chmod修改其权限。或者将其归属给root(前提是应用不是root执行的)。

回答(4):

也可以用 chattr +i /somefile 的方式更改,root 也改不了