如何柏油命令检查文件是否被更改?如何柏油“知道”这个文件已被更改,并且必须在下一次增量备份中输入?
我有一些假设:
- 它可能比较“mtime”;
- 它可能比较“ctime”;
- 它可能会比较内容(使用类似 md5sum 的方法);
当我说柏油我是说GNU tar。
答案1
我使用 GNU tar 做了一些测试,发现:
当你更新档案时
tar uvvf test.tar test_folder
只有mtime用于检查文件是否被改变。当您使用快照文件创建增量存档时,如下所示
tar cvvf test.tar --listed-incremental=snaphot test_folder
mtime 和 ctime用于检查更改。这样做是因为更改文件的某些属性(即所有者)会更改 ctime。Tar 不仅用于备份文件的内容,还用于备份其属性。最后,tar 不会对存档中的文件进行校验,如果您设法欺骗文件系统并更改文件的内容,但不更改其 mtime 和 ctime,tar 将不会在下一个增量中包含该文件。
有关 atime、mtime 和 ctime 的参考,我使用过这个http://www.unix.com/tips-tutorials/20526-mtime-ctime-atime.html。
答案2
如果您指的是 GNU tar,那么根据手册,它会根据存档中的修改时间检查修改时间。因此这将是mtime
。
http://www.gnu.org/software/tar/manual/html_section/Advanced-tar.html#SEC62
对于已被修改的文件,ctime
将保持不变,因此不会进行有效的检查。 tar
不进行 md5 检查。