檔案比較

if [[ $file1 -ef $file2 ]]; then
  echo "$file1 and $file2 are the same file"
fi

相同檔案表示修改其中一個檔案會影響另一個檔案。兩個檔案即使具有不同的名稱也可以是相同的,例如,如果它們是硬連結,或者它們是具有相同目標的符號連結,或者如果一個是指向另一個的符號連結。

如果兩個檔案具有相同的內容,但它們是不同的檔案(因此修改一個檔案不會影響另一個),則 -ef 會將它​​們報告為不同的檔案。如果要逐個位元組地比較兩個檔案,請使用 cmp 實用程式。

if cmp -s -- "$file1" "$file2"; then
  echo "$file1 and $file2 have identical contents"
else
  echo "$file1 and $file2 differ"
fi

要生成文字檔案之間差異的人類可讀列表,請使用 diff 實用程式。

if diff -u "$file1" "$file2"; then
  echo "$file1 and $file2 have identical contents"
else
  : # the differences between the files have been listed
fi