Thực hiện một số thử nghiệm với Raspberry Pi 3B + (Tôi đang sử dụng hệ thống tệp lớp phủ và cần đồng bộ hóa định kỳ), tôi đã chạy một so sánh của riêng tôi cho diff -q và cmp -s; lưu ý rằng đây là nhật ký từ bên trong / dev / shm, vì vậy tốc độ truy cập đĩa không phải là vấn đề:
[root@mypi shm]# dd if=/dev/urandom of=test.file bs=1M count=100 ; time diff -q test.file test.copy && echo diff true || echo diff false ; time cmp -s test.file test.copy && echo cmp true || echo cmp false ; cp -a test.file test.copy ; time diff -q test.file test.copy && echo diff true || echo diff false; time cmp -s test.file test.copy && echo cmp true || echo cmp false
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 6.2564 s, 16.8 MB/s
Files test.file and test.copy differ
real 0m0.008s
user 0m0.008s
sys 0m0.000s
diff false
real 0m0.009s
user 0m0.007s
sys 0m0.001s
cmp false
cp: overwrite âtest.copyâ? y
real 0m0.966s
user 0m0.447s
sys 0m0.518s
diff true
real 0m0.785s
user 0m0.211s
sys 0m0.573s
cmp true
[root@mypi shm]# pico /root/rwbscripts/utils/squish.sh
Tôi đã chạy nó một vài lần. cmp -s luôn có thời gian ngắn hơn một chút trên hộp kiểm tra tôi đang sử dụng. Vì vậy, nếu bạn muốn sử dụng cmp -s để thực hiện mọi thứ giữa hai tệp ....
identical (){
echo "$1" and "$2" are the same.
echo This is a function, you can put whatever you want in here.
}
different () {
echo "$1" and "$2" are different.
echo This is a function, you can put whatever you want in here, too.
}
cmp -s "$FILEA" "$FILEB" && identical "$FILEA" "$FILEB" || different "$FILEA" "$FILEB"