İSİM¶
diff - iki dosya arasındaki farklılıkları bulur
 
KULLANIM¶
diff [ seçenekler ] 1.dosya 2.dosya
 
AÇIKLAMA¶
diff, en basit tabiri ile, iki farklı dosyanın
  içeriğini karşılaştırır. Dosya ismi olarak
  - verilmişse, 
diff standart girdiyi okur. Özel bir durum
  olarak, 
diff - - şeklinde komut kullanımı, standart
  girdi ile bir kopyasını karşılaştırır.
 
Şayet 
1.dosya bir dizin ve 
2.dosya değilse, 
diff
  komutu, 
1.dosya ile verilen dizin içindeki 
2.dosya ile
  aynı isimli dosyayı karşılaştırır; bu durum
  tersi için de geçerlidir. Dizin olmayan dosya mutlaka -
  olmalıdır.
 
Şayet her iki girdi de dizin ise, 
diff, alfabetik sıra ile,
  eşleşen bütün dosyaları
  karşılaştırır. Bu karşılaştırma
  alt dizinlerde yapılmaz. Şayet alt dizinlerdeki dosyalarında
  karşılaştırılmasını 
-r veya
  
-recursive seçeneğini belirtmeniz gerekir. 
diff, asla
  bir dizinin asıl içeriğini bir dosyaymış gibi
  karşılaştırmaz. Standart girdi isimsiz olduğundan,
  tamamen tanımlanmış bir dosyaya standart girdi muamelesi
  yapılmaz ve "aynı isimli dosya" fikri buraya uygulanamaz.
 
diff seçenekleri 
- ile başlar. Bu nedenle 
1.dosya
  ve 
2.dosya isimleri 
- ile başlayamaz. Bunun yanında,
  
-- şeklinde kullanım ile bu sorunu aşabilirsiniz.
  
-- işaretinden sonra gelen argümanlar 
- ile
  başlasa bile dosya ismi olarak değerlendirilir.
 
Seçenekler¶
Aşağıda, GNU 
diff'in kabul ettiği bütün
  komutların bir özetini bulacaksınız. Pek çok
  seçenek iki eşdeğer isme sahiptir. Birincisi 
- ile
  başlayan tek bir harften oluşur, diğeri ise 
-- ile
  başlayan uzun bir isimden meydana gelmektedir. Çok sayıda tek
  harfli seçenek (bir argüman almadıkça), 
-ac gibi
  yanyana yazılabilir: 
-ac, 
-a ve 
-c anlamına
  gelir. Uzun isimli seçenekler de başlangıçtan itibaren
  kendilerinden başka bir seçenekle karışmayacak
  şekilde kısaltılarak kullanılabilirler. Köşeli
  parantezler içindeki argümanlar, gerekli değilse
  verilmeyebileceği anlamına gelir.
 
 
  - -satır_sayısı
 
  - Dosya içeriğin tamsayı cinsinden satır
      sayısı (-5 gibi belirtilir). Bu seçenek kendi
      başına bir çıktı biçimi tanımlamaz.
      -c veya -u ile birlikte kullanılmadığı
      sürece bir etkisi yoktur. Bu seçenek eskidir. patch
      komutunun düzgün çalışması için
      içerikte en az iki satır olması gerekir.
    
 
   
  - -a, --text
 
  - Metin dosyası olmasalar bile, bütün
      dosyaları metin dosyaları olarak kabul eder ve onları
      satır satır karşılaştırır.
    
 
   
  - -b, --ignore-space-change
 
  - Karşılaştırmada ara
      boşluklarındaki farklar dikkate alınmaz.
    
 
   
  - -B
 
  - Karşılaştımada boş
      satırlardaki farklar dikkate alınmaz.
    
 
   
  - -c
 
  - Bağlamsal çıktı biçimi
      kullanılır.
    
 
   
  - -C satır_sayısı,
    --context[= satır_sayısı]
 
  - Bağlamın satır_sayısı
      satırı gösterilerek bağlamsal çıktı
      biçimi kullanılır. satır_sayısı
      belirtilmezse üç satır gösterilir. patch
      komutunun düzgün çalışması için
      içerikte en az iki satır olması gerekir.
    
 
   
  - --changed-group-format=biçim 
 
  - Her iki dosyadaki if-then-else biçimindeki farklı
      satırları içeren satır gruplarını
      çıktılarken biçim kullanılır.
    
 
   
  - -d, --minimal
 
  - En küçük değişikliği bile
      bulmak için algoritma değiştirilir. Bu seçenek
      diff'in yavaş çalışmasına (bazan
      oldukça yavaş) sebep olur.
    
 
   
  - -D isim
 
  - isim önişlemci makrosunun
      koşullarına uygun olarak
      katıştırılmış if-then-else biçimli
      çıktı üretir.
    
 
   
  - -e, -ed
 
  - Çıktıyı bir ed betiği
      olarak üretir.
    
 
   
  - -f, --forward-ed
 
  - Çıktı bir ed betiği gibi
      karışık olur ancak farklar dosyadaki sırasına
      uygun çıktılanır.
    
 
   
  - -F düzifd,
    --show-function-line=düzifd 
 
  - Bağlamsal veya tekilleştirilmiş
      biçimde, her bir değişiklik parçası için,
      önceki satırdan düzifd ile eşleşen
      kısmı gösterir.
    
 
   
  - -h
 
  - Bu seçenek herhangi bir etkiye sahip değildir,
      Unix uyumluluğu için vardır.
    
 
   
  - -H
 
  - 
    
 
   
  - --speed-large-files
 
  - Pek çok küçük
      değişikliğe sahip büyük dosyaların
      karşılaştırılmasında işlemini
      hızlandırmak için buluşsal yöntemler (heuristics)
      kullanılır.
    
 
   
  - --horizon-lines=satır_sayısı
    
 
  - Farklılıklardan önceki ortak
      satırların son satır_sayısı
      satırını ve farklılıklardan sonraki ortak
      satırların ilk satır_sayısı
      satırını iptal etmez.
    
 
   
  - -i, --ignore-case
 
  - Büyük ve küçük harf
      kullanımından kaynaklanan farklar gözönüne
      alınmaz, aynı kabul edilir.
    
 
   
  - --ifdef=isim 
 
  - isim önişlemci makrosunun
      koşullarına uygun olarak
      katıştırılmış if-then-else biçimli
      çıktı üretir.
    
 
   
  - -I düzifd,
    --ignore-matching-lines= düzifd 
 
  - düzifd ile eşleşen satırlar
      diğer dosyada olsa da olmasada yok sayılır.
    
 
   
  - --ignore-blank-lines
 
  - Satırları
      karşılaştırırken boş satırları
      yoksayar.
    
 
   
  - -l, --paginate
 
  - Çıktıyı sayfalamak için pr
      komutundan geçirir.
    
 
   
  - -L etiket, --label=etiket 
 
  - Bağlamsal ya da tekilleştirilmiş
      biçimli başlıklarda dosya ismi yerine etiket
      kullanılır.
    
 
   
  - --left-column
 
  - Yanyana çıktılama biçiminde iki ortak
      satırdan sadece soldakini basar.
    
 
   
  - --line-format=biçim 
 
  - if-then-else biçimli tüm girdi
      satırlarını çıktılarken biçim
      kullanılır.
    
 
   
  - -n, -rcs
 
  - RCS biçimli çıktı verir; her komutun
      etkilenen satır sayısını belirtmesi
      dışında -f ile aynıdır.
    
 
   
  - -N, --new-file
 
  - Dizinleri karşılaştırırken, bir
      dosyanın sadece tek bir dizin içinde bulunduğu durumlarda;
      bu dosyayı diğer dizin içinde de, içi boş olarak,
      varmış gibi kabul eder.
    
 
   
  - --new-group-format=biçim 
 
  - İkinci dosyadaki if-then-else biçimli girdi
      satırı gruplarını çıktılarken
      biçim kullanılır.
    
 
   
  - --new-line-format=biçim 
 
  - İkinci dosyadaki if-then-else biçimli bir girdi
      satırını çıktılarken biçim
      kullanılır.
    
 
   
  - --old-group-format=biçim 
 
  - Birinci dosyadaki if-then-else biçimli girdi
      satırı gruplarını çıktılarken
      biçim kullanılır.
    
 
   
  - --old-line-format=biçim 
 
  - Birinci dosyadaki if-then-else biçimli bir girdi
      satırını çıktılarken biçim
      kullanılır.
    
 
   
  - -p, --show-c-function
 
  - Her bir değişikliğin hangi C işlevi
      içinde olduğunu gösterir.
    
 
   
  - -P, --unidirectional-new-file
 
  - Dizinleri karşılaştırırken, bir
      dosyanın sadece ikinci dizin içinde bulunduğu durumlarda;
      bu dosyayı diğer dizin içinde de, içi boş olarak,
      varmış gibi kabul eder.
    
 
   
  - -q, --brief
 
  - Dosyalar farklıysa sadece raporlar, farkları
      bulmaz.
    
 
   
  - -r, --recursive
 
  - Dizinleri karşılaştırırken,
      bulunan bütün alt dizinlerin içindekileri de
      karşılaştır.
    
 
   
  - -s
 
  - 
    
 
   
  - --report-identical-files
 
  - Dosyalar aynıysa raporlar.
    
 
   
  - -S dosya, --starting-file=dosya
    
 
  - Dizinleri karşılaştırırken,
      dosya ile belirtilen dosyadan başlar. Böylece yarıda
      kalmış bir kıyaslamayı devam ettirebilirsiniz.
    
 
   
  - --from-file=dosya 
 
  - Tüm terimleri dosya ile
      karşılaştırır. dosya bir dizin olabilir.
    
 
   
  - --to-file=dosya 
 
  - dosyayı tüm terimlerle
      karşılaştırır. dosya bir dizin olabilir.
    
 
   
  - --sdiff-merge-assist
 
  - sdiff'e yardım için ek bilgiler basar.
      sdiff, bu bilgileri diff'i
      çalıştırırken kullanır. Bu seçenek,
      kullanıcıların doğrudan kullanması için
      tasarlanmamıştır.
    
 
   
  - --suppress-common-lines
 
  - Yan yana çıktı biçiminde ortak
      satırlar çıktılanmaz.
    
 
   
  - -t
 
  - 
    
 
   
  - --expand-tabs
 
  - Girdi dosyalarındaki sekmelerin eşitliğini
      sağlamak için; çıktılarken sekmeleri
      boşluklara çevirir.
    
 
   
  - -T
 
  - 
    
 
   
  - --initial-tab
 
  - Normal ya da bağlamsal biçimdeki bir
      satırın metninden önceki boşlukları sekmelerle
      değiştirir. Böylece, satırların sekmelerle
      hizalanarak düzgün görünmesi sağlanır.
    
 
   
  - -u
 
  - Tekilleştirilmiş dosya biçimi
      kullanılır.
    
 
   
  - --unchanged-group-format=biçim 
 
  - Her iki dosyadan da alınmış if-then-else
      biçimindeki bir ortak satır grubunu biçim
      biçiminde çıktılar.
    
 
   
  - --unchanged-line-format=biçim 
 
  - Her iki dosyadan da alınmış if-then-else
      biçimindeki bir ortak satırı biçim
      biçiminde çıktılar.
    
 
   
  - -U satır_sayısı,
    --unified[= satır_sayısı]
 
  - Bağlamın satır_sayısı
      satırı gösterilerek tekilleştirilmiş
      çıktı biçimi kullanılır.
      satır_sayısı belirtilmezse üç satır
      gösterilir. patch komutunun düzgün
      çalışması için içerikte en az iki satır
      olması gerekir.
    
 
   
  - -v, --version
 
  - diff'in sürüm numarasını basar.
    
 
   
  - -w
 
  - 
    
 
   
  - --ignore-all-space
 
  - Satırları
      karşılaştırırken boşlukları atlar.
    
 
   
  - -W krk_sayısı,
    --width=krk_sayısı
 
  - Yanyana çıktı biçiminde
      krk_sayısı ile belirtilen genişlikte sütunlar
      kullanılır.
    
 
   
  - -x şablon,
    --exclude=şablon 
 
  - Dizinleri kıyaslarken, şablon ile
      eşleşen sahip alt dizinleri ve dosyaları yoksayar.
    
 
   
  - -X dosya, --exclude-from=dosya
    
 
  - Dizinleri kıyaslarken, dosya içindeki
      şablonlar ile eşleşen sahip alt dizinleri ve dosyaları
      yoksayar.
    
 
   
  - -y, --side-by-side
 
  - Yan yana çıktı biçimi
      kullanılır.
    
 
   
 
 
İLGİLİ BELGELER¶
cmp(1), 
comm(1), 
diff3(1), 
ed(1), 
patch(1)),
  
pr(1), 
sdiff(1).
 
 
ÇIKIŞ DURUMU¶
Çıkış durumu olarak 
0'ın anlamı,
  hiçbir farklılık bulunamadığıdır. Bazı
  farklılıkların olduğu durumlarda 
1 ile
  çıkar. Şayet 
2 ile çıkarsa, bir sorun var
  demektir.
 
 
ÇEVİREN¶
Yalçın Kolukısa <yalcink01 (at) yahoo.com>, Aralık
  2003