1

if特定のディレクトリ内の 2 つの最新ファイルの内容が (再帰的に) 同一であるかどうかを条件とするステートメントを作成する簡単な方法を探しています。

4

1 に答える 1

0

解析せずに bash のディレクトリ内に含まれるファイルを比較する 1 つの方法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 つのファイルの存在を比較するものであり、最新の 2 つのいずれかがシンボリック リンクであるかどうかを比較するものではないことに注意してください。さらに、指定されたディレクトリのサブディレクトリの内容は比較しません。

于 2015-11-28T09:32:46.423 に答える