用于仅复制已修改文件的 Bash 脚本

用于仅复制已修改文件的 Bash 脚本

我有一个名为 proj_base 的非常大的基目录,其中包含大量的文件和目录。

我几乎每天都会创建一个proj_base_ndate文件夹并复制前一天的内容proj_base_n-1date,等等。

由于明显的记忆限制,我想改变我愚蠢的工作方式。现在我想盲目复制文件夹,根据需要进行编辑,然后最后用来diff比较(假设base_dir/f1/file1= yesterday.cbase_dir/f2/file1= today.c),对所有文件进行迭代,以及未修改的文件,应由符号链接替换(例如,如果没有变化,则today.c用的符号链接替换),其余文件将被复制。yesterday.ctoday.c

我发现这种方法可能存在一个问题(可能有很多问题),因为对于每个未修改的文件,它都是一个指向前一个文件的符号链接,形成一个符号链接链,所以如果它发生了改变;根目录就会发生变化,从而影响所有过去的文件,那么可以避免吗?

还有什么可行的方法可以添加或删除文件?

我希望这样可以节省一些空间,但也欢迎任何其他方法或实用程序。

到目前为止我可以使用

diff -s

检查它们是否相同,但我不知道如何在 bash 脚本中通过循环使其迭代,并解决极端情况。

任何建议都会很有帮助。提前致谢。

相关内容