Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

लिनक्स डिफरेंट - उदाहरणों के साथ अंतर कैसे दिखाएं और पैच कैसे बनाएं

अंतर कमांड लिनक्स शेल से फाइलों या निर्देशिकाओं की तुलना करने का एक आसान तरीका है। यह लेख आपको सामान्य उपयोग के कुछ उदाहरणों के साथ इसका उपयोग करने का तरीका दिखाएगा।

अंतर कमांड दो फाइलों या निर्देशिकाओं की लाइन-बाय-लाइन तुलना करता है और उनके बीच के अंतर को आउटपुट करता है।

आप फ़ाइलों या निर्देशिकाओं की तुलना क्यों करना चाहेंगे?

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

फ़ाइलों की तुलना करने के लिए संभवतः आपके पास अपने कारण होंगे, इसलिए diff और इसका उपयोग कैसे करें।

अंतर सिंटैक्स

diff OPTIONS FILES

ध्यान दें कि:

  • विकल्प हैं वैकल्पिक और नीचे दी गई तालिका से आपूर्ति की जा सकती है
  • फ़ाइलें तुलना करने के लिए दो फाइलों का पथ है, रिक्त स्थान द्वारा अलग किया गया है

अंतर विकल्प

यहां सबसे अधिक उपयोग किए जाने वाले विकल्प हैं diff . के लिए सीधे उपयोगकर्ता पुस्तिका से कमांड:

<थ> <थ>
-q, -संक्षिप्त केवल तभी रिपोर्ट करें जब फ़ाइलें भिन्न हों
-s, –report-identical-files रिपोर्ट करें जब दो फ़ाइलें समान हों
-u, -U NUM, –unified[=NUM] एकीकृत संदर्भ की आउटपुट NUM (डिफ़ॉल्ट 3) पंक्तियाँ
-N-नई-फ़ाइल अनुपस्थित फ़ाइलों को खाली मानें
-l, –paginate इसे पृष्ठांकित करने के लिए 'pr' के माध्यम से आउटपुट पास करें
-r, -पुनरावर्ती किसी भी उपनिर्देशिका की दोबारा तुलना करें
–कोई संदर्भ नहीं प्रतीकात्मक लिंक का अनुसरण न करें
-a, –text सभी फ़ाइलों को टेक्स्ट के रूप में देखें
-d, –minimal परिवर्तनों का एक छोटा समूह खोजने के लिए कठिन प्रयास करें
-स्पीड-लार्ज-फाइल्स बड़ी फ़ाइलें और कई बिखरे हुए छोटे परिवर्तन मान लें

आप पूरा मैनुअल यहां देख सकते हैं या चला सकते हैं:

man diff

... विकल्पों के पूरे सेट के लिए कमांड लाइन से।

उदाहरण

फ़ाइलों की तुलना Linux में भिन्न के साथ करना

यह diff . का सबसे सरल उपयोग है कमांड और कंसोल में दो आपूर्ति की गई फाइलों के बीच अंतर को आउटपुट करेगा:

diff file1.txt file2.txt

आउटपुट को पुनर्निर्देशित करना

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

diff -q file1.txt file2.txt > differences.txt

यह बनाएगा (या अधिलेखित!differences.txt, जो दो फाइलों के बीच अंतर को सारांशित करेगा।

द -q विकल्प जोड़े गए हैं ताकि केवल अंतर सूचीबद्ध हों; समान फ़ाइलों का उल्लेख नहीं किया जाएगा ताकि यह देखना आसान हो जाए कि क्या हो रहा है।

निर्देशिकाओं की तुलना diff के साथ करना

निर्देशिकाओं की तुलना -r . का उपयोग करके भी की जा सकती है (पुनरावर्ती) उनकी सामग्री की तुलना करने का विकल्प:

diff -r -q /path/to/dir1 /path/to/dir2

फिर से, मैंने -q . का उपयोग किया है यहां विकल्प दें ताकि केवल अंतर सूचीबद्ध हों।

बड़ी फ़ाइलों वाली बड़ी फ़ाइलों या निर्देशिकाओं की तुलना करना

अंतर एक गहन प्रक्रिया है - तुलना की जा रही प्रत्येक फ़ाइल को पढ़ने और तुलना करने की आवश्यकता है। इसमें कुछ समय लग सकता है।

–गति-बड़ी फ़ाइलें विकल्प बदलता है diff's यदि आप बड़ी फ़ाइलों की तुलना कर रहे हैं तो इसे और अधिक कुशल बनाने के लिए एल्गोरिदम - चीजों को थोड़ा तेज करना।

फ़ाइल के लिए पैच बनाना

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

diff -u file1.txt file2.txt > update.patch

-u विकल्प अंतर को एक एकीकृत . में आउटपुट करता है प्रारूप जिसका उपयोग पैच . द्वारा किया जा सकता है मूल फ़ाइल को परिवर्तनों के साथ अद्यतन करने का आदेश।

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

फ़ाइल के लिए पैच इंस्टाल करना

जब आपके मित्र को पैच प्राप्त होता है, तो वे निम्न पैच का उपयोग करके इसे लागू कर सकते हैं आदेश:

patch original.txt < update.patch

फ़ाइल के लिए पैच को पूर्ववत करना

यदि आपने कोई गलती की है, तो आप किसी पैच को -R . के साथ उल्टा चलाकर उसे पूर्ववत कर सकते हैं विकल्प:

patch -R original.txt < update.patch

निर्देशिका के लिए पैच बनाना

निम्न आदेश -r . चलाकर संपूर्ण निर्देशिका के लिए एक पैच बनाएगा (पुनरावर्ती), -u (एकीकृत प्रारूप), और -N (अनुपस्थित फाइलों को खाली मानें) विकल्प।

diff -ruN originalDir updatedDir > update.patch

निर्देशिका के लिए पैच इंस्टाल करना

-p0 . का उपयोग करके निर्देशिका में पैच लागू किया जा सकता है विकल्प, जो पैच को उसी निर्देशिका संरचना पर लागू करेगा जैसा कि इसमें बनाया गया था:

patch -p0 < update.patch

निर्देशिका के लिए पैच को पूर्ववत करना

अंत में, निर्देशिका के पैचिंग को पूर्ववत/उलटना:

patch -R -p0 originalFile < patchFile


  1. Linux के साथ ISO फ़ाइलें कैसे निकालें

    आपने शायद पहले एक छवि फ़ाइल डाउनलोड की है, और एक अच्छा मौका है कि यह लोकप्रिय आईएसओ फ़ाइल एक्सटेंशन का उपयोग करता है। ये (आमतौर पर काफी बड़ी) फाइलें ऑप्टिकल मीडिया डिस्क के अनिवार्य रूप से डिजिटल संस्करण हैं। उस डिस्क पर निहित सभी फ़ाइलें ISO संग्रह के अंदर हैं। Apple macOS और Microsoft Windows के

  1. उदाहरण के साथ, लिनक्स में वॉच कमांड का उपयोग कैसे करें

    लिनक्स में वॉच कमांड एक काम करता है - एक कमांड को दोहराता है और परिणाम को बार-बार आउटपुट करता है, जिससे आप परिवर्तनों को देख सकते हैं। यहां इसका उपयोग करने का तरीका बताया गया है। कमांड सिंटैक्स देखें वॉच कमांड का सिंटैक्स इस प्रकार है: watch OPTIONS COMMAND ध्यान दें कि: विकल्प नीचे दी गई तालिका

  1. Windows 10 पर हिडन फाइल्स और फोल्डर्स कैसे दिखाएं

    जब आप ऑनलाइन हों, तो सबसे महत्वपूर्ण चीजों में से एक यह जानना है कि अपनी महत्वपूर्ण फाइलों को ताक-झांक करने वाली नजरों से कैसे बचाया जाए। लेकिन, अगर आप किसी फाइल को छिपाते हैं और भूल जाते हैं तो क्या होगा? या अंदर सामग्री प्राप्त करने के लिए एक छिपी हुई फाइल की जांच करना चाहते हैं? खैर, मुझे पता ह