İSİM
diff - iki dosya arasındaki
farklılıkları bulur
diff [ seçenekler ] 1.dosya 2.dosya
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.
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.
Ç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