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