我应该使用什么 tar 命令来在给定日期后更改文件——包括对所有权、权限等的更改——但不包括简单地从备份中恢复的文件?
另一方面,在恢复后遍历所有文件并在恢复过程中更改每个文件的状态更改时间是否更可取?
自给定日期以来,我一直在使用类似于以下的命令对所有最近修改的文件进行压缩,以进行定期穷人备份:
$ SINCE=20190501
$ tar cf - --after-date="${SINCE} 00:00:00" . | tar tvf -
这不是真正的命令,但它说明了我要表达的观点。如果我将输出发送到 tar 文件,此命令只是简单地转储出应该进入 tar 文件的文件列表。
直到现在,我认为这个命令工作正常,直到我更换了我的硬盘并从备份中恢复了所有文件。查看 的输出stat
,更改日期似乎是我从备份中恢复所有文件的日期,所以现在所有文件都在上面的 tar 命令中被选中。
$ stat restore_file.txt
...
Modify: 2019-04-01 23:52:12.000000000 -0500
Change: 2019-05-25 01:52:10.737688040 -0500
甚至--newer-mtime
似乎没有帮助:
$ tar cf - --newer-mtime="${SINCE}" . | tar tvf -
更新:我也尝试了以下方法,但似乎也无济于事,因为它仍然选择了比我想要的更多的文件:
$ SINCE=201905010000
$ touch -t "${SINCE}" /tmp/timestamp
$ stat /tmp/timestamp
Access: 2019-05-01 00:00:00.000000000 -0500
Modify: 2019-05-01 00:00:00.000000000 -0500
Change: 2019-06-30 18:29:19.277267874 -0500
$ tar cf - --after-date /tmp/timestamp . | tar tvf -