जवाबों:
लिनक्स के तहत:
$ diff -r /first/directory /second/directory
विंडोज के तहत: आप शायद WinMerge को बेहतर तरीके से डाउनलोड और इंस्टॉल करेंगे
> WinMerge /r c:\first\folder c:\second\folder
म
मैंने उबंटू पर मेल्ड का उपयोग किया - इसमें एक अच्छा निर्देशिका तुलना विकल्प है।
परे तुलना एक अच्छा वाणिज्यिक उपकरण है, $ 30 या तो। खिड़कियों के नीचे चलाता है, एक eval संस्करण है। http://www.scootersoftware.com/
सामान्यतः डिफ का उपयोग दो फ़ाइलों की तुलना करने के लिए किया जाता है, लेकिन इससे बहुत अधिक कर सकते हैं। में 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 की जाँच कर सकते हैं । यह विंडो और लाइनक्स दोनों में ठीक काम करता है।
विन्डोज़ के लिए डिफिगरेज एक विंडो में सबफ़ोल्डर्स सहित अंतर दिखाता है। कहीं एक पोर्टेबल संस्करण भी है, लेकिन एक त्वरित खोज ने इस डाउनलोड का पता लगाया: http://www.softpedia.com/get/System/File-Management/SourceGear-DiffMerge.shtml
मैंने पॉवरशेल में तुलना-वस्तु के 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."} }