मतभेदों के लिए दो निर्देशिकाओं (उप निर्देशिकाओं सहित) की तुलना कैसे करें?


14

मैं उप निर्देशिका के साथ दो निर्देशिकाओं की तुलना कैसे कर सकता हूं यह देखने के लिए कि अंतर कहां है?


6
ऑपरेटिंग सिस्टम कृपया।
मैक्सिमस मिनिमस

क्या आप जानना चाहते हैं कि क्या दो निर्देशिकाओं के बीच अलग-अलग फाइलें हैं या यदि फ़ाइलों की सामग्री अलग-अलग है?
मैट सिमंस

जवाबों:


20

लिनक्स के तहत:

$ diff -r /first/directory /second/directory

विंडोज के तहत: आप शायद WinMerge को बेहतर तरीके से डाउनलोड और इंस्टॉल करेंगे

> WinMerge /r c:\first\folder c:\second\folder


3
मैं अब -qrl का उपयोग करता हूं ...
एलेक्सा

1
क्या कमांड प्रॉम्प्ट का उपयोग किए बिना / r स्विच को निर्दिष्ट करने के लिए GUI में कोई विकल्प है?
ओमकारा

@Omtara, आपके द्वारा WinMerge शुरू करने के बाद, फ़ाइल - ओपन चुनें। खुले संवाद में, // सबफ़ोल्डर्स शामिल करें // चेक करें। यदि आप Windows Explorer में दो फ़ोल्डर्स का चयन करके WinMerge खोलते हैं, तो शेल इंटीग्रेशन कॉन्फ़िगर करें। ओपन एडिट - विकल्प; श्रेणी // शैल एकीकरण पर जाएँ और // डिफ़ॉल्ट रूप से सबफ़ोल्डर्स शामिल करें //।
आर। श्रेयर्स

2

मैंने उबंटू पर मेल्ड का उपयोग किया - इसमें एक अच्छा निर्देशिका तुलना विकल्प है।


+1 के लिए मेल्ड, आमतौर पर मुझे कमांड लाइन के विकल्प पसंद आते हैं, लेकिन अलग-अलग तरह से एक दृश्य में दो अलग-अलग निर्देशिकाओं के वास्तविक विभिन्न फ़ोल्डरों को नेत्रहीन रूप से देखने में सक्षम होना बहुत उपयोगी है। दोनों पिघलने और फैलाने का काम अभी भी उबंटू 16.04 और उबंटू 18.04 पर ठीक काम करता है किसी और के लिए 2018 में इसे ढूंढना। बेशक, विंडोज पर, WinMerge एक बढ़िया विकल्प है। मैंने सुना है कि Meld विंडोज पर काम करता है लेकिन मैंने अभी तक इसे व्यक्तिगत रूप से नहीं आजमाया है।
केन

1

परे तुलना एक अच्छा वाणिज्यिक उपकरण है, $ 30 या तो। खिड़कियों के नीचे चलाता है, एक eval संस्करण है। http://www.scootersoftware.com/


1

विंडोज पर, मेरा मानना ​​है कि विंडफ इसे करता है, हालांकि इस नौकरी के लिए विंमरेज मेरी पसंद का उपकरण है। यह खुला स्रोत है और निर्देशिका पेड़ों के दो सेटों की तुलना करने का बहुत साफ काम करता है।

संपादित करें: उफ़, मारियस द्वारा इसे पीटा गया था


1

सामान्यतः डिफ का उपयोग दो फ़ाइलों की तुलना करने के लिए किया जाता है, लेकिन इससे बहुत अधिक कर सकते हैं। में diffवह विकल्प "आर" और "q" यह रिकर्सिवली और चुपचाप काम करने के, यह है कि, केवल उल्लेख मतभेद, जो सिर्फ हम के लिए क्या देख रहे है:

diff -rq todo_orig/ todo_backup/

यदि आप ऐसी फ़ाइलों के लिए अंतर देखना चाहते हैं जो किसी भी निर्देशिका में मौजूद नहीं हो सकती हैं:

diff -Nrq dir1/ dir2/

आप कर सकते हैं भी उपयोग करें Rsyncऔर find। के लिए find:

find $FOLDER -type f | cut -d/ -f2- | sort > /tmp/file_list_$FOLDER

लेकिन एक ही नाम और एक ही सबफ़ोल्डर में, लेकिन अलग-अलग सामग्री के साथ फाइलें सूचियों में नहीं दिखाई जाएंगी।

यदि आप GUI के प्रशंसक हैं, तो आप Meld की जाँच कर सकते हैं । यह विंडो और लाइनक्स दोनों में ठीक काम करता है।


0

विन्डोज़ के लिए डिफिगरेज एक विंडो में सबफ़ोल्डर्स सहित अंतर दिखाता है। कहीं एक पोर्टेबल संस्करण भी है, लेकिन एक त्वरित खोज ने इस डाउनलोड का पता लगाया: http://www.softpedia.com/get/System/File-Management/SourceGear-DiffMerge.shtml


0

मैंने पॉवरशेल में तुलना-वस्तु के cmdlet का उपयोग करके यह लिखा है:

#set the directories 
$firstdirectory = Read-Host "What is the first directory you wish to compare?" $seconddirectory = Read-Host "What is the second directory you wish to compare?"

#Check if the user wants to compare subdirectories 
$recursivesearch = Read-Host "Do you wish to compare subdirectories? Please enter yes or no." If ($recursivesearch -eq "yes") 

#get the contents 
{ $firstdirectorycontents = @(Get-ChildItem $firstdirectory -Recurse) $seconddirectorycontents = @(Get-ChildItem $seconddirectory -Recurse ) }

    else { $firstdirectorycontents = @(Get-ChildItem $firstdirectory) $seconddirectorycontents = @(Get-ChildItem $seconddirectory) }
    #compare the objects and handle errors 
if ($firstdirectorycontents.Count -eq 0 )
        {
        Write-Host "No files were found in the first directory, the directories cannot be compared."
        }
        elseif ($seconddirectorycontents.Count -eq 0)
        {
        Write-Host "No files were found in the second directory, the directories cannot be compared."
        }
        else
        {   
        try 
            {
            Compare-Object -ReferenceObject $firstdirectorycontents -DifferenceObject $seconddirectorycontents 
            }

        catch {"Another error occured."} }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.