1. cmp Komutu Nedir?
cmp (compare) komutu, Linux ve Unix sistemlerinde iki dosyayı bayt bayt karşılaştırmak için kullanılan bir araçtır.
Metin dosyaları, ikili (binary) dosyalar veya herhangi iki veri dosyası üzerinde çalışabilir.
Başlıca kullanım amaçları:
- İki dosyanın tamamen aynı olup olmadığını kontrol etmek
- İlk farkın nerede oluştuğunu öğrenmek
- Script’lerde dosya bütünlüğünü doğrulamak
2. Temel Kullanım
cmp dosya1 dosya2
Açıklama: dosya1 ile dosya2 arasındaki farkı kontrol eder.
Eğer aynı ise herhangi bir çıktı vermez, farklı ise ilk farkın yerini belirtir.
3. Sık Kullanılan Argümanlar
Argüman | Açıklama |
---|---|
-b | Farklı baytları oktal ve karakter gösteriminde listeler |
-i <N> | Karşılaştırmaya başlamadan önce ilk N baytı yoksayar |
-l | Tüm farklı baytları oktal olarak listeler |
-n <N> | Sadece ilk N baytı karşılaştırır |
–silent veya -s | Hiçbir çıktı vermez, sadece çıkış kodu döndürür |
–help | Yardım metnini gösterir |
–version | Sürüm bilgilerini gösterir |
4. Örnek Kullanımlar
4.1. İki Dosyayı Karşılaştırma
cmp dosya1.txt dosya2.txt
Açıklama: Fark varsa şu şekilde bilgi döner:
dosya1.txt dosya2.txt farklı: byte 5, line 1
4.2. Sessiz Modda Karşılaştırma
cmp -s dosya1.txt dosya2.txt
Açıklama: Çıktı vermez, sadece çıkış kodu üretir (0 aynı, 1 farklı, 2 hata).
4.3. İlk Farklı Baytları Görmek
cmp -b dosya1.txt dosya2.txt
Açıklama: Farklı baytların oktal ve karakter karşılığını listeler.
4.4. İlk N Baytı Karşılaştırmak
cmp -n 100 dosya1.txt dosya2.txt
Açıklama: Yalnızca ilk 100 baytı karşılaştırır.
4.5. İlk N Baytı Yoksayarak Karşılaştırma
cmp -i 10 dosya1.txt dosya2.txt
Açıklama: Karşılaştırmaya başlamadan önce ilk 10 baytı atlar.
4.6. Tüm Farklı Baytları Listeleme
cmp -l dosya1.txt dosya2.txt
Açıklama: Tüm farklı baytları oktal formatta listeler.
5. İpuçları
- cmp, diff komutundan farklı olarak satır bazlı değil, bayt bazlı çalışır.
- Dosya bütünlüğü testi yapmak istediğinizde cmp -s kullanarak sessiz modda çalıştırabilir ve yalnızca çıkış kodunu kontrol edebilirsiniz.
- Büyük binary dosyalarda farkı hızlı tespit etmek için idealdir.