Cara membandingkan dua teks dan direktori untuk melihat perbedaannya di Linux

Pembaharuan Terakhir: 12/12/2025
penulis: Isaac
  • En Linux Kita dapat membandingkan file dan direktori dengan alat konsol seperti diff, sdiff, cmp, comm atau vimdiff, dan dengan antarmuka grafis seperti Meld atau Diffuse.
  • Perintah diff memungkinkan Anda untuk melihat perbedaan baris demi baris, mengabaikan spasi, huruf besar atau baris kosong, dan membandingkan seluruh direktori secara rekursif dengan opsi seperti -r, -qo atau -y.
  • Alat grafis seperti Meld memudahkan perbandingan dan penggabungan file dan folder dengan warna dan panah, bahkan terintegrasi dengan sistem kontrol versi.

Alat untuk membandingkan teks di Linux

Saat Anda bekerja setiap hari dengan Linux dan file teksCepat atau lambat, Anda akan mendapati diri Anda perlu memeriksa apakah dua file atau direktori benar-benar sama. Hal ini dapat terjadi setelah migrasi data, saat memperbarui aplikasi, saat meninjau cadangan, atau hanya saat membandingkan dua versi dokumen yang sama. naskah atau dokumen.

Jenis tugas ini, yang sekilas mungkin tampak seperti pekerjaan berat jika Anda mengerjakannya "secara manual," akan menjadi sangat mudah jika Anda menguasai beberapa di antaranya. alat perbandingan file dan direktoriDi Linux, pilihannya berkisar dari perintah klasik seperti diff, sdiff o comm...bahkan utilitas grafis seperti Meld o Membaurtermasuk editor seperti vimdiff atau pembungkus berwarna seperti perbedaan warna.

Kapan dan mengapa membandingkan teks dan direktori di Linux

Membandingkan direktori dan file di Linux

Salah satu contoh yang sangat umum adalah ketika Anda membuat Migrasi cloud atau server pribadi Anda Dan Anda ingin memastikan semuanya telah ditransfer dengan benar. Bayangkan Anda pindah dari Nextcloud ke solusi lain seperti Filerun: Anda menyalin data Anda, semuanya tampak baik-baik saja, tetapi ketika Anda memeriksa salinan lama, Anda melihat ada lebih banyak file daripada di lokasi baru.

Daripada menghabiskan waktu berjam-jam menjelajahi direktori untuk mencari apa yang hilang, hal yang logis untuk dilakukan adalah menggunakan terminal dan menjalankan perintah yang mendeteksi perbedaan antara dua struktur direktoriDi wilayah ini, raja absolut adalah diff, yang memungkinkan Anda membandingkan seluruh direktori dan file individual, serta menawarkan banyak parameter untuk menyesuaikan output.

Perbandingan ini juga umum dibutuhkan saat melakukan manajemen. versi skrip, file konfigurasi, atau dokumenPara pengembang menggunakan alat-alat ini setiap hari untuk melihat apa yang telah berubah antara versi suatu file, dan bahkan untuk menyiapkan patch atau mengintegrasikannya dengan sistem kontrol versi seperti Git, Mercurial, atau Bazaar.

Terakhir, jika Anda mengelola sistem atau menganalisis logAnda setidaknya harus menguasai perintah-perintah dasar, karena Anda akan sering membutuhkannya. Bandingkan log lokal dengan log jarak jauh.atau meninjau perubahan konfigurasi pada mesin yang hanya Anda akses melalui SSH, di mana Anda tidak memiliki alat grafis yang tersedia.

Menggunakan perintah diff untuk membandingkan direktori di Linux

Perintah diff Ini bukan hanya untuk membandingkan teks: ini juga bisa membandingkan struktur direktori secara rekursifIni sangat praktis untuk memvalidasi migrasi data atau sinkronisasi cadangan.

Cara paling mudah untuk membandingkan dua direktori lengkap Dengan menggunakan opsi-opsi berikut:

diff -rq 'directorio1' 'directorio2'

Dalam contoh ini, diff Ini adalah alat bantu perbandingan., -r Perintah tersebut menginstruksikan agar program menelusuri semua subdirektori secara rekursif, dan -q Sistem ini hanya menampilkan file dan folder yang memiliki perbedaan antara satu sisi dan sisi lainnya, sehingga menghindari gangguan yang tidak perlu.

Misalnya, untuk bandingkan isi cloud baru Anda Dengan salinan lama, Anda bisa menggunakan sesuatu seperti:

diff -rq '/home/usuario/Filerun/@Home' '/media/DATOS/copia_nextcloud'

Outputnya akan berupa daftar yang menunjukkan file yang hanya ada di salah satu direktori (dengan pesan seperti “Hanya di /path: namafile”) atau file yang ada di kedua lokasi tetapi isinya tidak cocok. Ini adalah cara yang sangat jelas untuk mendeteksi:

  • File sementara atau tersembunyi (misalnya, file) .git atau penyumbatan .~lock.) yang telah dikesampingkan.
  • Folder kosong bahwa mungkin aplikasi tersebut belum diunggah ke cloud.
  • Perubahan nyata dalam dokumen, gambar, atau naskah, yang sebaiknya Anda tinjau dengan cermat.

Dalam skenario ini, masalahnya tidak selalu terletak pada hal-hal yang hilang: terkadang masalahnya ada pada alat sinkronisasi itu sendiri. Abaikan file sementara, file pengunci, atau direktori kosong.Dan itu sepenuhnya dapat diterima. Tapi berkat diff Anda dapat melihat dengan tepat elemen mana yang tidak cocok dan memutuskan apa yang harus dilakukan terhadapnya.

Membandingkan dua file dengan diff: biner dan teks

Penggunaan yang paling terkenal diff Ini adalah perbandingan antara dua file untuk melihat bagian mana dari konten yang telah berubahDi sini Anda perlu membedakan antara file teks (di mana Anda dapat merinci baris demi baris) dan file biner, di mana Anda hanya akan menunjukkan apakah keduanya sama atau tidak.

  Cari tahu cara memulihkan kunci Emoji yang hilang dari keyboard iPhone Anda

Periksa apakah kedua file biner tersebut sama.

Jika Anda ingin mengetahui apakah dua dokumen dalam format yang sama ODT, DOC, PDFMP4 atau biner lainnya Keduanya identik, Anda bisa meluncurkan salah satunya. diff Cukup gunakan jalur kedua file tersebut:

diff '/home/usuario/Documento_V1.odt' '/home/usuario/Documento_V2.odt'

Jika dokumennya sama, Tidak akan ada output di layar.Jika terjadi perbedaan pendapat internal, diff Pesan yang ditampilkan akan seperti ini:

Los ficheros binarios Documento_V1.odt y Documento_V2.odt son distintos

Dalam kasus ini, karena bukan teks biasa, diff tidak dapat menunjukkan kepada Anda secara pasti apa yang telah berubah.Ini hanya memperingatkan bahwa konten internalnya berbeda. Untuk membandingkan dua file ODT secara detail, misalnya, Anda perlu menggunakan LibreOffice dan fungsi perbandingan dokumennya sendiri.

Bandingkan dua file teks atau Markdown secara mendalam.

ketika Anda bekerja dengan berkas teks biasa, skrip, konfigurasi, atau Markdown, diff Ya, ia dapat merinci perbedaan hingga ke milimeter. Sintaks dasarnya adalah:

diff archivo1 archivo2

Misalkan Anda memiliki dua versi dari file Markdown:

  • /home/usuario/archivo_1.md
  • /home/usuario/archivo_2.md

Saat berlari:

diff '/home/usuario/archivo_1.md' '/home/usuario/archivo_2.md'

Anda akan mendapatkan output di mana setiap blok perubahan Ikuti pola ini:

linea_fichero_1 tipo_de_cambio linea_fichero_2
< contenido_en_el_primer_fichero
---
> contenido_en_el_segundo_fichero

Dalam format klasik ini, Unsur-unsur kuncinya adalah:

  • nomor_baris_berkas_1: baris (atau rentang baris) dari file pertama yang terlibat dalam perubahan.
  • kurs: dapat a (tambah, tambah), c (perubahan, perubahan) atau d (hapus, hilangkan).
  • nomor_baris_berkas_2: baris (atau rentang) dari file kedua yang terpengaruh oleh perubahan.
  • <: menandai baris persis seperti yang muncul di file pertama.
  • >: menandai baris yang sesuai di file kedua.

Sebagai contoh, jika Anda melihat sesuatu seperti:

9c9
< Para usar GEEKLAND y obtener la diferencias existentes entre dos directorios...
---
> Para usar Diff y obtener la diferencias existentes entre dos directorios...

artinya bahwa Baris ke-9 pada berkas pertama telah berubah dibandingkan dengan baris ke-9 pada berkas kedua.Tepat di bawahnya < Ini menunjukkan kepada Anda konten aslinya dan > Konten telah dimodifikasi, sehingga Anda dapat melihat perubahannya secara langsung.

Jika hal seperti ini muncul:

18a19
> * -q: Para que la salida del comando diff únicamente muestre las diferencias...

Hal ini diartikan sebagai, membandingkan berkas kedua dengan berkas pertama, setelah baris 18 file 2 terdapat menambahkan baris baru 19 yang isinya ditampilkan setelah simbol tersebut >.

Lihat perbedaannya secara lebih visual dengan perintah diff -y

Jika Anda merasa notasi klasik membingungkan, diff Ini menawarkan mode yang lebih grafis menggunakan opsi tersebut. -y ayat menampilkan dua kolom berdampinganSelain itu, Anda dapat memberi nomor pada baris dengan cat -n untuk memudahkan pencarian lokasi Anda:

diff -y '/ruta/archivo1.md' '/ruta/archivo2.md' | cat -n

Dalam mode ini, kedua file ditampilkan secara paralel, dengan kolom tengah yang menggunakan simbol untuk membuat perbedaanHal ini memperjelas baris mana yang berubah, ditambahkan, atau dihapus.

Jika Anda ingin fokus hanya pada baris yang berbeda, Anda dapat menambahkan opsi tersebut. --suppress-common-lines:

diff -y --suppress-common-lines 'archivo1.md' 'archivo2.md'

Dengan cara ini Garis identik menghilang dan Anda hanya melihat apa yang sebenarnya berubah antara kedua teks tersebut, yang sangat praktis ketika file tersebut panjang dan sebagian besar isinya sama.

Opsi perbedaan utama untuk menyempurnakan perbandingan

Perintah diff memiliki koleksi yang bagus parameter yang memungkinkan perbandingan untuk disesuaikan Tergantung pada apa yang Anda minati: mengabaikan spasi, huruf kapital, baris kosong, atau mengubah format output.

Di antara pilihan yang paling umum (sebagai tambahan -r, -q y -y) menonjol:

  • -s: hanya memberi tahu jika dua file identik, berguna jika Anda perlu mengkonfirmasi kecocokan.
  • -i: mengabaikan perbedaan huruf besar dan kecil dalam konten tekstual.
  • -b: bandingkan dengan mengabaikan Kosong sederhana.
  • -E: mengabaikan perbedaan tab antar berkas.
  • -Z: mengabaikan spasi di akhir baris, sangat berguna dalam kode.
  • -B: tidak memperhitungkan garis kosong saat membandingkan.
  • --no-dereferenceHindari mengikuti tautan simbolik saat Anda membandingkan direktori.
  • --ignore-file-name-case: mengabaikan perbedaan huruf besar dan kecil pada nama file (saat membandingkan daftar atau direktori).
  • --no-ignore-file-name-case: memaksa perbedaan nama tersebut untuk diperhitungkan.
  • --suppress-common-lines: dengan -yFitur ini menyembunyikan garis-garis yang identik dan berfokus pada garis-garis yang berbeda.

Jika Anda ingin melangkah lebih jauh dan melihat semua kemungkinannya, cukup konsultasikan dengan halaman manual perbedaan:

man diff

Di sana Anda akan menemukan opsi yang kurang umum, seperti mengecualikan pola penamaan tertentu, memodifikasi format output (misalnya, format terpadu). -u untuk patch) atau sesuaikan ukuran konteks yang ditampilkan di sekitar setiap perubahan.

  Apa cara terbaik untuk menemukan nama dengan nomor ponsel?

perbedaan untuk perbandingan folder mendalam

Selain contoh dasar dengan -rqAnda dapat menggabungkan beberapa opsi untuk perbaiki perbandingan direktoriSebagai contoh, jika Anda ingin mengabaikan perbedaan huruf besar/kecil pada nama file dan tidak mengikuti tautan simbolik, Anda dapat melakukan hal seperti ini:

diff -rq --no-dereference --ignore-file-name-case dir1 dir2

Itu juga mungkin untuk digunakan diff -r dosa -q sehingga, selain memberi tahu Anda file mana yang berbeda, akan menunjukkan detail perbedaan kontennya kepada Anda saat menangani file teks. Namun, di direktori yang sangat besar, outputnya bisa sangat banyak.

Bagi banyak administrator, membandingkan direktori secara rekursif Hal ini menjadi tugas rutin: memeriksa apakah pencadangan sudah lengkap, memeriksa apakah folder konfigurasi pada satu server sama dengan folder pada server lain, atau memverifikasi bahwa dua cabang proyek berisi struktur file yang sama.

Alat konsol lain untuk membandingkan teks di Linux

Meskipun diff Ini adalah utilitas unggulan; ekosistem Linux menawarkan Perintah lain yang sangat berguna untuk membandingkan file baris demi baris.Beberapa menambahkan tampilan berdampingan, yang lain mengharuskan file diurutkan, dan yang lainnya lagi memanfaatkan editor teks tingkat lanjut.

sdiff: perbandingan berdampingan dalam mode teks

Perintah sdiff Ini ideal jika Anda menginginkan Lihat dua file berdampingan di terminal., dengan garis vertikal yang menunjukkan di mana terdapat perbedaan:

sdiff f1.txt f2.txt

Pada output, Anda akan melihat setiap baris dari file pertama di sebelah kiri dan baris yang sesuai dari file kedua di sebelah kanan. Simbol yang paling umum adalah:

  • |Kedua garis yang dibandingkan itu berbeda.
  • <: baris yang hanya muncul di file pertama.
  • >: baris yang hanya muncul di file kedua.

Suka diff, sdiff Ini juga menerima opsi seperti -i untuk mengabaikan huruf besar dan huruf kecilHal ini memungkinkan Anda untuk fokus sepenuhnya pada perubahan teks yang sebenarnya dan bukan pada variasi penggunaan huruf kapital.

colordiff: output berwarna untuk diff

Baca satu perbedaan hitam dan putih Hal ini bisa agak membosankan jika terdapat banyak perubahan. colordiff Ini adalah pembungkus kecil yang menerapkan warna pada output perbedaan agar lebih mudah dibaca:

colordiff archivo1 archivo2

Biasanya, colordiff Sistem ini menggunakan warna berbeda untuk baris yang dihapus, ditambahkan, dan dimodifikasi, sehingga memudahkan untuk melihat perubahan secara sekilas. Selain itu, Anda dapat Sesuaikan warna dengan mengedit file. Konfigurasi /etc/colordiffrc sesuai dengan preferensi Anda.

comm: bandingkan file yang sudah diurutkan dan lihat baris yang sama

Perintah comm berbeda dengan diff karena Ini berfungsi pada file yang sudah diurutkan baris demi baris. dan menghasilkan keluaran tiga kolom:

comm f1.txt f2.txt

Di pintu keluar Anda akan menemukan:

  • kolom pertama: baris unik dari file pertama.
  • Kolom kedua: baris unik dari file kedua.
  • Kolom ketiga: baris yang muncul di keduanya.

Ini sangat berguna untuk kumpulan data atau daftar di mana Anda ingin mengetahui entri mana yang umum dan mana yang unik untuk setiap file. Namun, jika file-file tersebut tidak diurutkan, comm Sistem akan memberi peringatan dan hasilnya tidak dapat diandalkan, jadi Anda sebaiknya mengirimkan... sort.

cmp: perbandingan byte demi byte

Perintah cmp membandingkan dua file byte demi byteIni adalah level yang lebih rendah daripada diffdan digunakan untuk mendeteksi apakah dua file (teks atau biner) persis sama:

cmp archivo1 archivo2

Jika berkasnya cocok, Tidak ada yang ditampilkan di layar.Jika mereka berbeda pendapat, cmp menunjukkan byte pertama yang berbeda dan baris yang sesuai Dalam kasus teks:

archivo1 archivo2 son distintos: byte 1454, línea 43

Dengan opsi -b, selain posisi tersebut, cmp juga menunjukkan isi dari byte yang berbeda di kedua file tersebut, yang dapat berguna untuk diagnosis yang sangat tepat.

vimdiff (atau vim -d): kekuatan editor Vim untuk perbandingan

Jika Anda menggunakan Vim, Anda akan tertarik dengan ini. vimdiffyang mengintegrasikan perbandingan file langsung di dalam editor.Perintahnya sangat sederhana:

vimdiff archivo1 archivo2

O baik:

vim -d archivo1 archivo2

Vim membuka file di beberapa jendela, menyoroti perbedaan, dan memungkinkan Anda Telusuri, edit, dan simpan perubahan. menggunakan perintah Vim standar. Ini juga mendukung perbandingan jarak jauh melalui SSH, misalnya:

vimdiff /var/log/secure scp://192.168.1.25/var/log/secure

Dalam hal ini, Anda sedang membandingkan log lokal dengan log jarak jauh melalui SSH.Vim akan mengurus permintaan kredensial dan menampilkan kedua file seolah-olah Anda memilikinya secara lokal.

  Semua tentang Overclocking Otomatis di AMD Adrenalin

Alat grafis untuk membandingkan teks dan direktori di Linux

Jika Anda kurang nyaman dengan terminal atau lebih menyukai sesuatu yang lebih visual, Linux juga menawarkan Aplikasi grafis khusus untuk membandingkan file dan folder.Yang paling populer mungkin adalah Meld, tapi ini bukan satu-satunya.

Meld: Antarmuka grafis Diff untuk file, direktori, dan proyek.

Meld pada dasarnya adalah antarmuka grafis untuk perbedaan.Meskipun sangat kaya vitamin. Hal ini memungkinkan membandingkan dan menggabungkan file, direktori, dan bahkan proyek di bawah sistem kontrol versi seperti Git, Mercurial, Bazaar, atau SVN.

Di antara fitur-fiturnya yang paling menarik meliputi:

  • Perbandingan dua arah dan tiga arah dari file dan direktori.
  • Fungsi Penggabungan Otomatis untuk menggabungkan perubahan secara otomatis ketika tidak ada konflik serius.
  • Penyorotan sintaksis dan manajemen file dasar langsung dari antarmuka.
  • Integrasi dengan sistem kontrol versi dan alat baris perintah seperti git mergetool.
  • Un kode warna yang sangat jelas untuk menandai baris yang ditambahkan, dihapus, atau dimodifikasi.

Pemasangannya sederhana karena Meld tersedia di repositori sebagian besar distribusi.. Sebagai contoh:

  • Debian, Ubuntu, Linux Mint, dan turunannya:
    sudo apt install meld
  • Fedora, CentOS, Alma Linux dan sejenisnya:
    sudo dnf install meld
  • Arch Linux, Manjaro dan turunannya:
    sudo pacman -S meld
  • SUSE dan openSUSE:
    sudo zypper install meld

Saat Anda menjalankannya, Anda memilih apakah ingin melakukan perbandingan atau tidak. berkas, direktori, atau proyek di bawah kendali versiPilih item pertama, klik "Bandingkan," lalu pilih item kedua. Meld akan menampilkan dua (atau tiga) panel dengan konten dan kode warna standar: Warna hijau untuk baris yang ditambahkan, merah untuk baris yang dimodifikasi, abu-abu dengan garis tengah untuk baris yang dihapus., Dll

Selain itu, di setiap blok perbedaan Anda akan melihat panah yang memungkinkan Anda menyalin perubahan dari satu sisi ke sisi lainnya dengan sekali klik, yang sangat menyederhanakan sinkronisasi dua versi file tanpa harus menyalin dan menempel baris demi baris secara manual.

Diffuse dan alternatif grafis lainnya

Alat grafis menarik lainnya adalah MembaurFitur ini juga memungkinkan Anda untuk membandingkan dan mengedit file teks dengan penyorotan perbedaan. Ia mendukung perbandingan beberapa file dan terintegrasi dengan sistem kontrol versi.

Untuk memasang Diffuse Pada distribusi berbasis Debian/Ubuntu atau Fedora, Anda dapat menggunakan:

sudo apt-get install diffuse   # Debian/Ubuntu
sudo dnf install diffuse       # Fedora

Selain Meld dan Diffuse, ada pilihan lain seperti Penggabungan Perbedaan (lintas platform) atau plugin yang terintegrasi ke dalam IDE dan editor (VS Code, IntelliJ, dll.) yang menawarkan antarmuka yang sangat rapi untuk membandingkan dan menggabungkan kode.

Tips dan trik praktis untuk membandingkan file di Linux

Membandingkan file hanyalah sebuah alat; yang penting adalah... Gunakan dengan bijak tergantung pada jenis data yang Anda miliki.Beberapa tips yang akan menghemat waktu Anda adalah:

  • Jika file tersebut berisi daftar atau data yang tidak terurutAnda mungkin tertarik untuk memesannya terlebih dahulu dengan sort sebelum menggunakan diff o commagar perbandingannya lebih logis.
  • Untuk menghindari kesalahan positif dalam kode, biasakan menggunakan opsi seperti -b, -B o -Z, yang mengabaikan spasi kosong, baris kosong, atau spasi di akhir baris.
  • Jika Anda hanya ingin mengetahui apakah dua file itu sama tanpa melihat detailnya, diff -q o cmp Mereka lebih langsung daripada diferensial penuh.
  • Saat membandingkan direktori besar, pertimbangkan untuk menggunakan diff -rq untuk melihat sekilaslalu telusuri lebih dalam hanya pada file-file yang tampak berbeda.
  • Dalam lingkungan pengembangan, andalkan git diff dan integrasi lainnya dengan sistem kontrol versi, yang sudah dirancang untuk menyoroti perubahan kode yang relevan.

Menguasai alat perbandingan ini di Linux memungkinkan Anda untuk mengontrol migrasi dengan lebih baik, menemukan kesalahan dalam konfigurasi, meninjau perubahan skrip, dan secara umum, Bekerja dengan jauh lebih aman saat menangani file-file penting.Dengan sedikit latihan, Anda akan bisa menggunakannya. diff, sdiff, vimdiff, Meld dan perusahaan hampir di luar kepala, dan Anda akan menemukan bahwa menghemat waktu dan sakit kepala saat membandingkan dua teks atau direktori semudah menjalankan beberapa perintah yang dipilih dengan baik.

Cara Membandingkan dan Menggabungkan Dokumen di Word 3
Artikel terkait:
Cara membandingkan dan menggabungkan dokumen di Word