在 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
它给你的是按时间倒序排列的文件列表。
- 所有比几周前更新
dir1
且dir2
相同的文件都被修改了。 - 列表顶部的修改文件是最近修改的文件。例如,如果 的修改文件
fileN
比dir1
的修改文件高dir2
,则fileN
的修改文件dir1
较新。
这样够好吗?
答案2
这是一个回答来自 Unix & Linux Stack Exchange,其中包含一个可以完全按照您的要求执行的脚本:
简单地这样称呼它:
<caller_shell> '/path/to/script.sh' dir1 dir2