【发布时间】:2016-03-02 08:51:30
【问题描述】:
我正在寻找一种简单的方法来获得 if 语句,其中条件是给定目录中的 2 个最新文件(递归地)内容是否相同。
【问题讨论】:
-
这真的是两个问题合二为一:(1)获取目录中两个最新文件的名称(递归与否?不清楚); (2) 比较给定路径的两个文件。 (2) 非常简单(
diff、cmp等)。 (1)据我所知并不是那么容易。有ls -t,但解析ls输出总是不受欢迎;然后是stat,但您可能需要手动对时间戳进行排序。 -
是的,是2题合一。这就是为什么它不是链接到问题的副本。我可以在评论中给出答案,但我认为值得重新提出这个问题。毕竟,我来到这里是因为我有完全相同的问题。
-
简短的回答是:
readarray -t files < <(ls -t /your/dir/ | head -2); if diff -q "${files[@]}"; then echo identical; fi。如果您确定文件名永远不能包含空格,则可以使用更简单的files=$(ls -t /your/dir/ | head -2); if diff -q $files; then echo identical; fi。但是总有一天,文件名中会有空格……
标签: bash shell timestamp file-comparison