1

我正在寻找一种简单的方法来if声明条件是给定目录中的 2 个最新文件(递归)是否在内容上相同。

4

1 回答 1

0

在不解析的情况下比较 bash 目录中包含的文件的一种方法ls是:

unset -v penultimate  ## one before newest
unset -v latest       ## newest

for file in "$dirname"/*; do
    [[ $file -nt $latest ]] && penultimate="$latest" && latest="$file"
done

if [[ -f $latest ]] && [[ -f $penultimate ]]; then
    if diff -q "$penultimate" "$latest" ; then
        printf "Files '%s' and '%s' are identical\n" "$penultimate" "$latest"
    fi
fi

注意:如果文件不同,默认行为diff -q将输出:Files '%s' and '%s' differ\n" "$penultimate" "$latest". 另请注意,上面比较了 2 个文件的存在,而不是最新的两个文件中的任何一个是否是符号链接。它进一步不比较给定目录的子目录的内容。

于 2015-11-28T09:32:46.423 回答