एंड्रॉयड

लिनक्स में डिफेंस कमांड

सुरक्षा स्कैन - वायु रक्षा कमान

सुरक्षा स्कैन - वायु रक्षा कमान

विषयसूची:

Anonim

diff एक कमांड-लाइन उपयोगिता है जो आपको दो फ़ाइलों की लाइन लाइन से तुलना करने की अनुमति देती है। यह निर्देशिकाओं की सामग्री की तुलना भी कर सकता है।

patch कमांड का उपयोग करके एक या अधिक फ़ाइलों के बीच अंतर रखने वाले पैच बनाने के लिए आमतौर पर अलग कमांड का उपयोग किया जाता है।

diff कमांड का उपयोग कैसे करें

diff कमांड के लिए सिंटैक्स निम्नानुसार है:

diff… FILES

अलग-अलग कमांड सामान्य, संदर्भ और एकीकृत प्रारूप के साथ कई प्रारूपों में आउटपुट प्रदर्शित कर सकते हैं। आउटपुट में जानकारी शामिल है कि फ़ाइलों में कौन सी लाइनें बदलनी चाहिए ताकि वे समान हो जाएं। यदि फ़ाइलें मेल खाती हैं, तो कोई आउटपुट उत्पन्न नहीं होता है।

किसी फ़ाइल में कमांड आउटपुट को बचाने के लिए, पुनर्निर्देशन ऑपरेटर का उपयोग करें:

diff file1 file2 > patch

, हम यह बताने के लिए कि कमांड कैसे काम करती है, निम्नलिखित दो फाइलों का उपयोग करेंगे:

file1

Ubuntu Arch Linux Debian CentOS Fedora करें 2

Kubuntu Ubuntu Debian Arch Linux Centos Fedora

सामान्य प्रारूप

अपने सरलतम रूप में जब बिना किसी विकल्प के दो टेक्स्ट फ़ाइलों पर diff कमांड चलाया जाता है, तो यह सामान्य प्रारूप में आउटपुट उत्पन्न करता है:

diff file1 file2

आउटपुट कुछ इस तरह दिखाई देगा:

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

सामान्य आउटपुट स्वरूप में एक या अधिक अनुभाग होते हैं जो अंतरों का वर्णन करते हैं। प्रत्येक अनुभाग इस तरह दिखता है:

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

0a1 , 2d2 और 4c4, 5 परिवर्तन कमांड हैं। प्रत्येक परिवर्तन आदेश में निम्नलिखित हैं, बाएं से दाएं:

  • पहली फ़ाइल में लाइनों की संख्या या रेंज। विशेष परिवर्तन वर्ण। दूसरी फ़ाइल में लाइनों की संख्या या सीमा।

परिवर्तन चरित्र निम्नलिखित में से एक हो सकता है:

  • a - लाइनें जोड़ें। c - लाइनों को बदलें। d - लाइनों को हटा दें।

परिवर्तन आदेश को पूरी लाइनों द्वारा हटा दिया जाता है ( < ) और फ़ाइल में जोड़ा जाता है ( > )।

आइए आउटपुट को समझाएं:

  • 0a1 - फ़ाइल 1 की शुरुआत में दूसरी फ़ाइल की लाइन 1 (लाइन 0 बाद) जोड़ें।
    • > Kubuntu - दूसरी पंक्ति से वह रेखा जो ऊपर बताई गई पहली फ़ाइल में जोड़ी जाती है।
    2d2 - पहली फ़ाइल में लाइन 2 हटाएं। d चिन्ह के बाद के 2 अर्थ है कि यदि रेखा नहीं हटाई गई तो यह दूसरी फ़ाइल में पंक्ति 2 पर दिखाई देगी।
    • < Arch Linux - हटाई गई रेखा।
    4c4, 5 - दूसरी फ़ाइल से 4-5 लाइनों के साथ पहली फ़ाइल में लाइन 5 को बदलें (बदलें)।
    • < CentOS - पहली फ़ाइल में पंक्ति को प्रतिस्थापित किया जाना है। --- - विभाजक। > Arch Linux और > Centos - पहली फ़ाइल में लाइन की जगह दूसरी फ़ाइल से लाइनें।

प्रसंग स्वरूप

जब संदर्भ आउटपुट प्रारूप का उपयोग किया जाता है, तो अलग-अलग कमांड फाइलों के बीच अलग-अलग लाइनों के आसपास संदर्भ की कई पंक्तियों को प्रदर्शित करता है।

-c विकल्प संदर्भ प्रारूप में आउटपुट उत्पन्न करने के लिए अलग-अलग बताता है:

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

आउटपुट नाम और टाइमस्टैम्प से शुरू होता है यदि फ़ाइलों की तुलना की जाती है, और एक या एक से अधिक अनुभाग जो अंतर का वर्णन करते हैं। प्रत्येक अनुभाग इस तरह दिखता है:

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

  • from-file-line-numbers और to-file-line-numbers - क्रमशः पहली और दूसरी फ़ाइल में लाइनों की संख्या या अल्पविराम से अलग की गई श्रेणी। from-file-line और to-file-line - वह रेखाएँ जो भिन्न होती हैं और संदर्भ की रेखाएँ:
    • दो स्थानों से शुरू होने वाली रेखाएँ संदर्भ की रेखाएँ होती हैं, जो रेखाएँ दोनों फ़ाइलों में समान होती हैं। ऋण चिह्न के साथ शुरू होने वाली रेखाएँ ( - ) ऐसी रेखाएँ होती हैं जो दूसरी फ़ाइल में कुछ भी नहीं के साथ मेल खाती हैं। दूसरी फ़ाइल में गायब लाइनें। प्लस सिंबल ( + ) के साथ शुरू होने वाली लाइनें वे लाइनें हैं जो पहली फ़ाइल में कुछ भी नहीं के अनुरूप हैं। पहली फ़ाइल में लाइनें गायब हैं। विस्मयादिबोधक चिह्न ( ! ) से शुरू होने वाली लाइनें दो फ़ाइलों के बीच बदली जाने वाली लाइनें हैं। लाइनों के प्रत्येक समूह के साथ शुरू ! पहली फ़ाइल से दूसरी फ़ाइल में एक संगत मिलान होता है।

आइए आउटपुट के सबसे महत्वपूर्ण भागों की व्याख्या करें:

  • इस उदाहरण में हमारे पास मतभेदों का वर्णन करने वाला केवल एक खंड है। *** 1, 6 **** और --- 1, 7 ---- हमें इस खंड में शामिल पहली और दूसरी फ़ाइलों से लाइनों की श्रेणी बताता है। Ubuntu , Debian , Fedora और अंतिम खाली लाइन दोनों फाइलों में समान हैं। ये लाइनें डबल स्पेस से शुरू हो रही हैं। पहली फाइल से - Arch Linux दूसरी फाइल में कुछ भी नहीं है। हालाँकि यह लाइन दूसरी फ़ाइल में भी मौजूद है, पोजीशन अलग हैं + Kubuntu दूसरी फाइल से + Kubuntu कुबंटु पहली फाइल में कुछ भी नहीं है ! CentOS पहली फ़ाइल और लाइनों से ! CentOS ! Arch Linux ! Arch Linux और ! CentOS दूसरी फ़ाइल से ! CentOS को फ़ाइलों के बीच बदल दिया जाता है।

डिफ़ॉल्ट रूप से संदर्भ पंक्तियों की संख्या तीन तक सीमित हो जाती है। अन्य नंबर का उपयोग करने के लिए -C ( --contexts ) विकल्प निर्दिष्ट करें:

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

एकीकृत प्रारूप

एकीकृत आउटपुट प्रारूप संदर्भ प्रारूप का एक उन्नत संस्करण है और एक छोटे आउटपुट का उत्पादन करता है।

एकीकृत प्रारूप में आउटपुट प्रिंट करने के लिए अलग बताने के लिए -u विकल्प का उपयोग करें:

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

आउटपुट नामों और फाइलों के टाइमस्टैम्प और एक या अधिक वर्गों के साथ शुरू होता है जो अंतर का वर्णन करते हैं। प्रत्येक अनुभाग निम्नलिखित रूप लेता है:

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

  • @@ from-file-line-numbers to-file-line-numbers @@ - इस सेक्शन में शामिल पहली और दूसरी फाइल से लाइनों की लाइन नंबर या रेंज। line-from-files - वे लाइनें जो भिन्न होती हैं और संदर्भ की रेखाएं:
    • दो स्थानों से शुरू होने वाली लाइनें संदर्भ की रेखाएं हैं, जो रेखाएं दोनों फाइलों में समान हैं। शून्य से शुरू होने वाले चिह्न ( - ) पहली फ़ाइल से हटाए गए रेखाएं हैं। प्लस चिह्न ( + ) से शुरू होने वाली रेखाएं हैं पहली फ़ाइल से जो लाइनें जोड़ी जाती हैं।

मामले की अनदेखी करें

जैसा कि आप ऊपर दिए गए उदाहरणों में देख सकते हैं, डिफॉल्ट रूप से diff कमांड संवेदनशील है।

मामले की अनदेखी करने के लिए अलग बताने के लिए -i विकल्प का उपयोग करें:

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

निष्कर्ष

अंतर के लिए पाठ फ़ाइलों की तुलना करना लिनक्स सिस्टम प्रशासकों के लिए सबसे आम कार्यों में से एक है।

अलग कमांड फाइलों की लाइन लाइन से तुलना करती है। अधिक जानकारी के लिए, टाइप करें man diff आपके टर्मिनल में man diff है।

टर्मिनल अलग करें