Linux ‘ta dizinlerin karşılaştırılması

Geçenlerde üzerinde çalıştığım bir projede zaman zaman dosya kopyalaması ve backup işlemleri yapmam gerekiyordu. Klasik bilgisiyarcılar gibi göbek düşkünlüğümden olsa gerek bu iş içinde otomatik bir rutin hazırladım ve bıraktım. Bazen, yapılan bu kopyalama işlemlerini kontrol etmem gerekti. Grafik arabirim olsaydı; yine bu işlemi otomatik olarak yerine getirmek için bir program kullanırdım sanırım. Ama “consol” üzerinde böyle bir işleme ihtiyaç duymuyoruz (:

“diff” komutu yardımıyla console üzerindeykende bu işlemi oldukça basit bir şekilde yerine getirebiliyoruz.  Aslında dosyaları karşılaştırmak (compore/diffrent) için kullandığımız bu komut; “-r” parametresini vererek iki dizin arasındaki farkıda öğrenebiliriz.

Kısaca kullanım şeklini kısa bir örnek ile gösterecek olursak;

diff -rq /kaynak/ /hedef/

gibi basit bir kullanım şekli var. Burada kullandığımız -r ve -q parametrelerinin anlamları ise şu şekildedir;

-r (recursive): Belirtilen dizinin tüm alt dizinlerine de göz atılmasını sağlamaktadır.
-q (brief): ise, farkların özet olarak gösterilmesini sağlar. Böylece düzgün bir listeleme yapılabilir.

Örnek komutumuzun çıktısı ise şu şekilde olacaktır.

Only in /kaynak/: file1.txt
Only in /hedef/: file2.txt
Files /kaynak/file3.txt and /hedef/file3.txt differ

komutun çıktısı görüldüğü üzere basit ve anlaşılır bir şekildedir. http://unixhelp.ed.ac.uk/CGI/man-cgi?diff adresinden ya da “man -k diff” komutunu kullanarak, diff kullanımı hakkında daha fazla bilgiye ulaşabilirsiniz.

Yorum Yap