Android

Linux'ta Diff Komutu

Что такое Linux, обзор, отличия. Какой Linux выбрать в 2020

Что такое Linux, обзор, отличия. Какой Linux выбрать в 2020

İçindekiler:

Anonim

diff , iki dosyayı satır satır karşılaştırmanıza olanak tanıyan bir komut satırı yardımcı programıdır. Ayrıca dizinlerin içeriğini karşılaştırabilir.

diff komutu en çok patch komutu kullanılarak uygulanabilecek bir veya daha fazla dosya arasındaki farkları içeren bir yama oluşturmak için kullanılır.

diff Komutunun Kullanımı

diff komutu için sözdizimi aşağıdaki gibidir:

diff… FILES

diff komutu, çıktıyı en yaygın olanları olan normal, bağlam ve birleştirilmiş biçimle birkaç biçimde görüntüleyebilir. Çıktı, dosyalarda hangi satırların aynı olması için değiştirilmeleri gerektiği hakkında bilgiler içerir. Dosyalar eşleşirse çıktı üretilmez.

Komut çıkışını bir dosyaya kaydetmek için yeniden yönlendirme işlecini kullanın:

diff file1 file2 > patch

, diff komutunun nasıl çalıştığını açıklamak için aşağıdaki iki dosyayı kullanacağız:

dosya1

Ubuntu Arch Linux Debian CentOS Fedora dosya2

Kubuntu Ubuntu Debian Arch Linux Centos Fedora

Normal Biçim

diff komutu iki metin dosyasında herhangi bir seçenek olmadan çalıştırıldığında en basit haliyle, normal biçimde bir çıktı üretir:

diff file1 file2

Çıktı şöyle görünecektir:

0a1 > Kubuntu 2d2 < Arch Linux 4c4, 5 < CentOS --- > Arch Linux > Centos

Normal çıktı biçimi, farklılıkları tanımlayan bir veya daha fazla bölümden oluşur. Her bölüm şöyle görünür:

change-command < from-file-line… --- > to-file-line…

0a1 , 2d2 ve 4c4, 5 değiştirme komutlarıdır. Her değişiklik komutu soldan sağa aşağıdakileri içerir:

  • İlk dosyadaki satır numarası veya satır aralığı.Özel bir değişiklik karakteri.İkinci dosyadaki satır numarası veya satır aralığı.

Değişiklik karakteri aşağıdakilerden biri olabilir:

  • a - Satırları ekleyin. c - Çizgileri değiştirin. d - Çizgileri silin.

Değişiklik komutunun ardından, kaldırılan ( < ) ve dosyaya ( > ) eklenen tüm satırlar gelir.

Çıktıyı açıklayalım:

  • 0a1 - İkinci dosyanın 1 satırını dosyanın1 başına ( 0 satırından sonra) ekleyin.
    • > Kubuntu - İkinci satırdan yukarıda açıklandığı gibi ilk dosyaya eklenen satır.
    2d2 - İlk dosyadaki 2 satırı silin. d sembolünden sonraki 2 , satır silinmezse ikinci dosyada satır 2 görüneceği anlamına gelir.
    • < Arch Linux - silinmiş satır.
    4c4, 5 - İlk dosyadaki satır 5 ikinci dosyadan 4-5 4c4, 5 değiştirin (değiştirin).
    • < CentOS - Değiştirilecek ilk dosyadaki satır. --- - Ayırıcı. > Arch Linux ve > Centos - İlk dosyadaki satırın yerini alan ikinci dosyadan satırlar.

Bağlam Biçimi

Bağlam çıktı biçimi kullanıldığında, diff komutu dosyalar arasında farklılık gösteren satırların çevresinde birkaç bağlam satırı görüntüler.

-c seçeneği diff bağlam biçiminde çıktı üretmesini söyler:

diff -c file1 file2

*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 6 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 7 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora

Çıktı, karşılaştırılan dosyaların adları ve zaman damgalarıyla ve farklılıkları açıklayan bir veya daha fazla bölümle başlar. Her bölüm şöyle görünür:

*************** *** from-file-line-numbers **** from-file-line… --- to-file-line-numbers ---- to-file-line…

  • from-file-line-numbers ve to-file-line-numbers - Sırasıyla birinci ve ikinci dosyadaki satır numaraları veya virgülle ayrılmış satır aralığı. from-file-line ve to-file-line - Farklı satırlar ve bağlam satırları:
    • İki boşlukla başlayan satırlar bağlam satırlarıdır, her iki dosyada da aynıdır. Eksi simgesiyle başlayan satırlar ( - ) ikinci dosyada hiçbir şeye karşılık gelmeyen satırlardır. İkinci dosyada eksik satırlar. ( + ) Simgesiyle başlayan satırlar, ilk dosyada hiçbir şeye karşılık gelmeyen satırlardır. İlk dosyada eksik satırlar. Ünlem işaretiyle ( ! ) Başlayan satırlar iki dosya arasında değiştirilen satırlardır. Her satır grubu ile başlayan ! ilk dosyadan ikinci dosyada karşılık gelen bir eşleşme vardır.

Çıktının en önemli kısımlarını açıklayalım:

  • Bu örnekte, farklılıkları açıklayan tek bir bölüm var. *** 1, 6 **** ve --- 1, 7 ---- bize bu bölüme dahil olan birinci ve ikinci dosyalardan satır aralığını anlatır.Lines Ubuntu , Debian , Fedora ve son boş satır her iki dosyada da aynıdır. Bu satırlar çift boşlukla başlıyor.Line - Arch Linux ilk dosyadan ikinci dosyadaki hiçbir şeye karşılık gelmiyor. Bu satır ikinci dosyada da mevcut olmasına rağmen, konumlar farklıdır. İkinci dosyadan satır + Kubuntu ilk dosyadaki hiçbir şeye karşılık gelmez ! CentOS İlk dosya ve satırlardan ! CentOS ! Arch Linux ! Arch Linux ve ! CentOS İkinci dosyadan ! CentOS dosyalar arasında değiştirilir.

Varsayılan olarak, bağlam satırı sayısı varsayılan olarak üçtür. Başka bir sayı belirtmek için -C ( --contexts ) seçeneğini kullanın:

diff -C 1 file1 file2

*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 5 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 6 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora

Birleşik Biçim

Birleştirilmiş çıktı biçimi, bağlam biçiminin geliştirilmiş bir sürümüdür ve daha küçük bir çıktı üretir.

-u çıktıyı birleşik biçimde yazdırmasını bildirmek için -u seçeneğini kullanın:

diff -u file1 file2

--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian -CentOS +Arch Linux +Centos Fedora

Çıktı, dosyaların adları ve zaman damgalarıyla ve farklılıkları tanımlayan bir veya daha fazla bölümle başlar. Her bölüm aşağıdaki formu alır:

*************** @@ from-file-line-numbers to-file-line-numbers @@ line-from-files…

  • @@ from-file-line-numbers to-file-line-numbers @@ - Bu bölümde yer alan birinci ve ikinci dosyalardan satırların satır numarası veya aralığı. line-from-files satır - Farklı satırlar ve bağlam satırları:
    • İki boşlukla başlayan satırlar bağlam satırlarıdır, her iki dosyada da aynı satırlardır. Eksi simgesiyle başlayan satırlar ( - ) ilk dosyadan kaldırılan satırlardır. Artı sembolüyle ( + ) başlayan satırlar ilk dosyadan eklenen satırlar.

Vakayı yoksay

Yukarıdaki örneklerde fark edebileceğiniz gibi, diff komutu varsayılan olarak büyük / küçük harfe duyarlıdır.

Diff'e büyük / küçük harf kullanımını -i söylemek için -i seçeneğini kullanın:

diff -ui file1 file2

--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian +Arch Linux CentOS Fedora

Sonuç

Metin dosyalarını farklılıklar için karşılaştırmak Linux sistem yöneticileri için en yaygın görevlerden biridir.

diff komutu dosyaları satır satır karşılaştırır. Daha fazla bilgi için terminalinize man diff yazın.

fark terminali