fark
Gibi comm program fark Dosyalar arasındaki farkları tespit etmek için kullanılır. Fakat, fark birçok çıktı formatını destekleyen ve büyük metin dosyası koleksiyonlarını aynı anda işleme becerisine sahip, çok daha karmaşık bir araçtır. fark yazılım geliştiricileri tarafından program kaynak kodunun farklı sürümleri arasındaki değişiklikleri incelemek için sıklıkla kullanılır ve bu nedenle kaynak kodu dizinlerini yinelemeli olarak inceleme yeteneğine sahiptir. kaynak ağaçlar. Bunun için ortak bir kullanım fark yaratılışı fark dosyaları or yamalar gibi programların kullandığı yama (bunu kısaca tartışacağız) bir dosyanın (veya dosyaların) bir sürümünü başka bir sürüme dönüştürmek için.
Eğer kullanırsak fark önceki örnek dosyalarımıza bakmak için:
[ben@linuxbox ~]$ fark dosyası1.txt dosya2.txt
1d0
< bir 4a4
> e
[ben@linuxbox ~]$ fark dosyası1.txt dosya2.txt
1d0
< bir 4a4
> e
varsayılan çıktı stilini görüyoruz: iki dosya arasındaki farkların kısa bir açıklaması. Varsayılan formatta, her değişiklik grubunun önünde bir komutu değiştir biçiminde aralık çalışma aralığı birinci dosyayı ikinci dosyaya dönüştürmek için gereken değişiklik konumlarını ve türlerini açıklamak için:
Tablo 20-4: diff Değiştirme Komutları
Açıklamayı Değiştir
Açıklamayı Değiştir
r1ar2 Çizgileri konuma ekleyin r2 ikinci dosyadaki pozisyona
İlk dosyada r1.
![]()
r1cr2 Konumdaki satırları değiştirin (değiştirin) r1 pozisyondaki çizgilerle r2 ikinci dosyada.
![]()
r1dr2 İlk dosyadaki satırları şu konumda silin: r1, menzilde görünecek olan r2 ikinci dosyada
![]()
Bu formatta aralık, başlangıç çizgisinin ve bitiş çizgisinin virgülle ayrılmış listesidir. Bu format varsayılan olmasına rağmen (çoğunlukla POSIX uyumluluğu ve geleneksel Unix sürümleriyle geriye dönük uyumluluk için) fark), diğer isteğe bağlı formatlar kadar yaygın olarak kullanılmaz. En popüler formatlardan ikisi bağlam formatı ve birleşik format.
Bağlam biçimi kullanılarak görüntülendiğinde ( -c seçeneği), şunu göreceğiz:
[ben@linuxbox ~]$ diff -c dosya1.txt dosya2.txt
*** dosya1.txt 2008-12-23 06:40:13.000000000 -0500
--- dosya2.txt 2008-12-23 06:40:34.000000000 -0500
***************
*** 1,4 ****
- abcd
--- 1,4 ----
bcd
+ Ve
[ben@linuxbox ~]$ diff -c dosya1.txt dosya2.txt
*** dosya1.txt 2008-12-23 06:40:13.000000000 -0500
--- dosya2.txt 2008-12-23 06:40:34.000000000 -0500
***************
*** 1,4 ****
- abcd
--- 1,4 ----
bcd
+ Ve
Çıktı, iki dosyanın adları ve zaman damgalarıyla başlar. İlk dosya yıldız işaretleriyle, ikinci dosya ise kısa çizgilerle işaretlenmiştir. Listenin geri kalanı boyunca bu işaretleyiciler ilgili dosyaları belirtecektir. Daha sonra, çevredeki bağlam satırlarının varsayılan sayısı da dahil olmak üzere değişiklik gruplarını görüyoruz. İlk grupta şunları görüyoruz:
*** 1,4 ***
bu, ilk dosyadaki 1'den 4'e kadar olan satırları gösterir. Daha sonra şunu görüyoruz:
--- 1,4 ---
bu, ikinci dosyadaki 1'den 4'e kadar olan satırları gösterir. Bir değişim grubunda satırlar dört göstergeden biriyle başlar:
Tablo 20-5: diff Bağlam Formatı Değişikliği Göstergeleri
Gösterge Anlamı
Gösterge Anlamı
boş Bağlam için gösterilen bir satır. İki dosya arasında bir fark olduğunu göstermez.
![]()
- Bir satır silindi. Bu satır ilk dosyada görünecek ancak ikinci dosyada görünmeyecek.
![]()
![]()
+ Bir satır eklendi. Bu satır ikinci dosyada görünecek ancak ilk dosyada görünmeyecektir.
![]()
! Bir satır değişti. Hattın iki versiyonu, her biri değişiklik grubunun ilgili bölümünde görüntülenecektir.
![]()
Birleştirilmiş biçim, bağlam biçimine benzer ancak daha özlüdür. İle belirtilir -u seçenek:
[ben@linuxbox ~]$ diff -u dosya1.txt dosya2.txt
--- dosya1.txt 2008-12-23 06:40:13.000000000 -0500
+++ dosya2.txt 2008-12-23 06:40:34.000000000 -0500
@@ -1,4 + 1,4 @@
-abcd
+e
[ben@linuxbox ~]$ diff -u dosya1.txt dosya2.txt
--- dosya1.txt 2008-12-23 06:40:13.000000000 -0500
+++ dosya2.txt 2008-12-23 06:40:34.000000000 -0500
@@ -1,4 + 1,4 @@
-abcd
+e
Bağlam ve birleştirilmiş biçimler arasındaki en dikkate değer fark, yinelenen bağlam satırlarının ortadan kaldırılması, böylece birleştirilmiş biçimin sonuçlarının bağlam biçiminin sonuçlarından daha kısa hale getirilmesidir. Yukarıdaki örneğimizde, bağlam biçimindekilere benzer dosya zaman damgalarını ve ardından dizeyi görüyoruz. @@ -1,4 + 1,4 @@. Bu, değişiklik grubunda açıklanan ilk dosyadaki satırları ve ikinci dosyadaki satırları gösterir. Bunu takip eden satırlar, varsayılan üç satırlık bağlamla birlikte gelir. Her satır üç olası karakterden biriyle başlar:
Tablo 20-6: diff Birleşik Format Değişikliği Göstergeleri
Karakter Anlamı
Karakter Anlamı
boş Bu satır her iki dosya tarafından paylaşılıyor.
![]()
- Bu satır ilk dosyadan kaldırıldı.
![]()
+ Bu satır ilk dosyaya eklendi.
![]()
Dökümanlar