İ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