linux diff:有没有办法根据文件最后修改时间列出差异?

linux diff:有没有办法根据文件最后修改时间列出差异?

在 Linux 终端中,我使用

diff --recursive --brief dir1 dir2

几周前,dir1 和 dir2 是相同的,但从那时起它们都经过了修改。我想按 dir2 中文件的最后修改日期(或 dir1,或较新的日期,或它们开始不同的时间)对输出进行排序。

我查看了不同的选项,但似乎没有内置方法可以实现这些功能。

有谁知道办法吗?

答案1

不,在所有不同的选项中,没有一种内置方法可以完成您需要的任何事情。您必须自己创造解决方案。

这是一个相当简单和直接的解决方案:

find /path/to/dir1  /path/to/dir2 -printf "%TY-%Tm-%Td %TH:%TM %p\n" | sort -r

它给你的是按时间倒序排列的文件列表。

  1. 所有比几周前更新dir1dir2相同的文件都被修改了。
  2. 列表顶部的修改文件是最近修改的文件。例如,如果 的修改文件fileNdir1的修改文件高dir2,则fileN的修改文件dir1较新。

这样够好吗?

答案2

这是一个回答来自 Unix & Linux Stack Exchange,其中包含一个可以完全按照您的要求执行的脚本:

简单地这样称呼它:

<caller_shell> '/path/to/script.sh' dir1 dir2

相关内容