GNU/Linux >> Belajar Linux >  >> Linux

Cara tercepat untuk mengetahui apakah dua file memiliki konten yang sama di Unix/Linux?

Saya suka @Alex Howansky telah menggunakan 'cmp --silent' untuk ini. Tapi saya membutuhkan tanggapan positif dan negatif, jadi saya menggunakan:

cmp --silent file1 file2 && echo '### SUCCESS: Files Are Identical! ###' || echo '### WARNING: Files Are Different! ###'

Saya kemudian dapat menjalankan ini di terminal atau dengan ssh untuk memeriksa file terhadap file konstanta.


Untuk dan aman dengan cepat bandingkan dua file apa pun:

if cmp --silent -- "$FILE1" "$FILE2"; then
  echo "files contents are identical"
else
  echo "files differ"
fi

Ini dapat dibaca, efisien, dan berfungsi untuk semua nama file termasuk "` $()


Saya percaya cmp akan berhenti pada perbedaan byte pertama:

cmp --silent $old $new || echo "files are different"

Karena saya payah dan tidak memiliki poin reputasi yang cukup, saya tidak dapat menambahkan berita gembira ini sebagai komentar.

Tapi, jika Anda akan menggunakan cmp perintah (dan tidak perlu/ingin bertele-tele) Anda cukup mengambil status keluar. Per cmp halaman manual:

Jika FILE '-' atau hilang, baca input standar. Status keluar adalah 0jika masukannya sama, 1 jika berbeda, 2 jika bermasalah.

Jadi, Anda dapat melakukan sesuatu seperti:

STATUS="$(cmp --silent $FILE1 $FILE2; echo $?)"  # "$?" gives exit status for each comparison

if [[ $STATUS -ne 0 ]]; then  # if status isn't equal to 0, then execute code
    DO A COMMAND ON $FILE1
else
    DO SOMETHING ELSE
fi

EDIT:Terima kasih atas komentarnya semuanya! Saya memperbarui sintaks pengujian di sini. Namun, saya menyarankan Anda menggunakan jawaban Vasili jika Anda mencari sesuatu yang mirip dengan jawaban ini dalam keterbacaan, gaya, dan sintaksis.


Linux
  1. Salin file di terminal Linux

  2. Pindahkan file di terminal Linux

  3. Miliki sapi di baris perintah Linux

  1. Apakah Kami Memiliki Undo Di Linux?

  2. Diff Reports Dua File Berbeda, Meski Sama!?

  3. Apa cara tercepat untuk menggabungkan dua atau lebih file di Linux?

  1. Linux vs. Unix:Apa bedanya?

  2. Tujuan Folder Hilang + Ditemukan Di Linux Dan Unix?

  3. Linux – Bagaimana Cara Memeriksa Informasi Struktur Direktori File Unix/linux?