檔案比較
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