मैं कुछ ऐसी चीज़ों की तलाश कर रहा हूं जो निर्देशिकाओं और फ़ाइलों की तुलना करें, जैसे कि विंडोज़ से तुलना करें।
इसका मुख्य रूप से स्रोत नियंत्रण के उपयोग के लिए है, लेकिन मुझे इसे तैनाती के लिए भी उपयोग करने की आवश्यकता है।
मैं कुछ ऐसी चीज़ों की तलाश कर रहा हूं जो निर्देशिकाओं और फ़ाइलों की तुलना करें, जैसे कि विंडोज़ से तुलना करें।
इसका मुख्य रूप से स्रोत नियंत्रण के उपयोग के लिए है, लेकिन मुझे इसे तैनाती के लिए भी उपयोग करने की आवश्यकता है।
जवाबों:
मेल्ड एक ऐसा उपकरण है जो फाइलों और निर्देशिकाओं की तुलना और विलय कर सकता है। यह मानक diff
और patch
कमांड लाइन टूल के लिए GUI एनालॉग है । (देखें आदमी diff और आदमी पैच उन पर अधिक जानकारी के लिए)
इसके अलावा, बहुत सारे सोर्स कंट्रोल सिस्टम (जैसे कि bzr
या git
तो) संस्करणों के बीच अंतर पैदा करने की क्षमता रखते हैं।
beyond compare
नीचे देखें। imho से बेहतर है
मुश्किल है आपका दोस्त
diff -ur path1 path2
यह पथ 1 और पथ 2 के बीच सामान्य सभी फ़ाइलों की तुलना करेगा।
यदि आप इसमें परिवर्तन -ur
करते हैं, -urN
तो यह उन फ़ाइलों की सामग्री को भी दिखाएगा जो केवल एक पथ में मौजूद हैं।
colordiff
और इस्तेमाल कियाcolordiff -ur path1 path2
'बियॉन्ड तुलना' लिनक्स के लिए भी उपलब्ध है।
उनके डाउनलोड url की जाँच करें: http://www.scootersoftware.com/download.php
diff
कमांड का उपयोग करें :
diff -u file1 file2
diff -u
संदर्भ की कुछ पंक्तियों के साथ एक प्रारूप का चयन करता है। एक सादा diff file1 file2
ही अलग-अलग रेखाओं को सूचीबद्ध करता है। आउटपुट प्रारूप को नियंत्रित करने के लिए कई और विकल्प हैं, व्हॉट्सएप-केवल अंतरों को अनदेखा करें, आदि।
यदि आप किसी फ़ाइल में आउटपुट लिखना चाहते हैं, तो उसे रीडायरेक्ट करें:
diff -u file1 file2 >file1-file2.diff
इंटरफ़ेस वास्तविक सेक्सी नहीं हो सकता है, लेकिन यह बहुत शक्तिशाली है!
और यदि आप अन्य * कमांडर (जैसे नॉर्टन, या पसंद) के लिए उपयोग किए गए थे, तो आप खो नहीं जाएंगे।
इस ब्लॉग प्रविष्टि से प्रेरित है ।
विभिन्न फाइलों को सूचीबद्ध करना:
diff -qr folder1 folder2
लिस्टिंग सामग्री:
diff -Naur folder1 folder2
यदि दो निर्देशिका एक ही मशीन पर नहीं हैं, rsync
तो सबसे आसान समाधान हो सकता है। आमतौर पर rsync
इसका उपयोग निर्देशिकाओं को सिंक करने के लिए किया जाता है, लेकिन आप इसे वर्बोज़ और ड्राई मोड में चला सकते हैं, इसलिए यह केवल उन फाइलों को सूचीबद्ध करेगा जिन्हें इसे बदलना होगा।
rsync -rvnc --delete folder1 server:/path/to/folder2
c
अगर आप टाइमस्टैम्प पर आधारित फाइलों की तुलना करना चाहते हैं और हर चीज में तेजी लाने के लिए फाइल के आकार की तुलना कर सकते हैं:
rsync -rvn --delete folder1 server:/path/to/folder2
क्रूसेडर एक फ्री टूल (सॉफ्टवेयर सेंटर में उपलब्ध) है जो तुलना में फ़ोल्डर सामग्री को दिखाता है और आप बहुत सारे विभिन्न विकल्पों के साथ सिंक्रनाइज़ कर सकते हैं। आप सिंक्रनाइज़ और तुलना करते समय फ़िल्टर कर सकते हैं।
फ़ाइल सामग्री की तुलना करने के लिए, आप बस दो फ़ाइलों को चिह्नित करते हैं "फ़ाइल"> "सामग्री की तुलना करें" और उनकी तुलना पत्र के आधार पर एक पत्र से की जाती है। डिफ़ॉल्ट तुलना उपकरण Krusader द्वारा उपयोग किया जाता है डिफ़ॉल्ट KDE उपकरण " कोम्पर " है। आप किसी अन्य तुलना उपकरण का उपयोग करने के लिए क्रूसरर सेट कर सकते हैं - जैसे ऊपर दिए गए उदाहरणों में से एक।
यह अब तक का सबसे पूर्ण समाधान है और यह बहुत सुविधाजनक है। और यह आधी रात के कमांडर (नॉर्टन कमांडर सिंटैक्स) द्वारा उपयोग किए जाने वाले सभी फ़ंक्शन कीबाइंडंग्स का समर्थन करता है।
यह KDE उपयोगकर्ताओं (या यदि आप Qt एप्लिकेशन का उपयोग करने में कोई आपत्ति नहीं करते हैं) के लिए अलग करने के लिए एक ग्राफ़िकल फ्रंट-एंड है।
डाइरेक्टरीज़ के लिए भी डाइर्डिफ़ है।
मुझे दो सप्ताह पहले हैशदीप के बारे में पता चला । और इसके कुछ मजबूत फायदे हैं:
meld
, यह बहुत बड़े फ़ोल्डरों के लिए अच्छा काम करता है। जहां meld
बेहद धीमी गति से और UI अनुत्तरदायी (अवरुद्ध) हो जाता है, हैशदीप बस एक स्थिर गति से काम करता हैrsync
, हैशदीप ने फ़ाइलों को ले जाया - एक ही सामग्री के साथ फ़ाइलें, बस एक अलग निर्देशिका में।वर्बोज़ आउटपुट जैसा है:
...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG
hashdeep: Audit failed
Input files examined: 0
Known files expecting: 0
Files matched: 6233
Files partially matched: 0
Files moved: 3695
New files found: 19257
Known files not found: 4713
इस तुलना को करने का एक अच्छा तरीका " md5sum " के साथ " खोज " का उपयोग करना है , फिर एक " अंतर " है।
उदाहरण:
निर्देशिका में सभी फ़ाइलों को सूचीबद्ध करने के लिए खोज का उपयोग करें फिर प्रत्येक फ़ाइल के लिए md5 हैश की गणना करें और इसे एक फ़ाइल में पाइप करें:
$find /dir1/ -type f -exec md5sum {} \; > dir1.txt
दूसरी निर्देशिका के लिए भी यही प्रक्रिया करें:
$find /dir2/ -type f -exec md5sum {} \; > dir2.txt
फिर परिणाम की दो फाइलों की तुलना "भिन्न" से करें:
$diff dir1.txt dir2.txt
यह रणनीति बहुत उपयोगी है जब दो निर्देशिकाओं की तुलना एक ही मशीन में नहीं की जाती है और आपको यह सुनिश्चित करने की आवश्यकता है कि फाइलें दोनों निर्देशिकाओं में समान हैं।
नौकरी करने का एक और अच्छा तरीका गिट का उपयोग करना है
git diff --no-index dir1/ dir2/
सादर!
FreeFileSync भी आज़माएं । इसमें एक सभ्य इंटरफ़ेस है, स्वीकार्य तुलना गति, तुलनात्मक परिणाम की अच्छी फ़िल्टरिंग, सिंक्रनाइज़ेशन के तरीके अलग हैं। यह एक फ़ोल्डर मॉनीटरिंग टूल (RealTimeSync) के साथ आता है जो FreeFileSync (वास्तव में किसी भी कमांड या स्क्रिप्ट) को लॉन्च कर सकता है जब उस विशिष्ट फ़ोल्डर (या फ़ोल्डर्स) या फ़ाइलों को बदल दिया जाता है। वास्तव में एक कोशिश के काबिल।
इसके बारे में अधिक जानकारी यहाँ या यहाँ , जहाँ आपके पास PPA है , भी
उनके पेज से, प्रमुख विशेषताएं:
फ़ाइलों की तुलना करें (तिथि या तारीख से) और उन्हें सिंक्रनाइज़ करें।
कोई सीमाएँ नहीं: फ़ाइलों की एक मनमानी संख्या को सिंक्रनाइज़ किया जा सकता है।
यूनिकोड समर्थन।
नेटवर्क का समर्थन।
बहुत लंबे फ़ाइल नाम के लिए अंतर्निहित समर्थन (MAX_PATH = 260 वर्णों से अधिक)।
हटाए गए फ़ाइलों और संघर्ष का पता लगाने के प्रसार के लिए सिंक्रनाइज़ेशन डेटाबेस
अलग विन्यास के साथ कई फ़ोल्डर जोड़े के लिए समर्थन
विंडोज / लिनक्स प्रतीकात्मक लिंक और विंडोज जंक्शन पॉइंट्स के लिए पूर्ण समर्थन।
झुक और आसानी से सुलभ यूआई: गति और डेटा के विशाल सेट के लिए अत्यधिक अनुकूलित।
एल्गोरिथ्म पूरी तरह से सी ++ में कोडित हैं।
अधिकतम प्रदर्शन के लिए अनुकूलित सभी प्रगति संकेतक!
GUI के साथ या उसके बिना स्वचालित सिंक्रनाइज़ेशन के लिए बैच नौकरियां बनाएं।
प्रयोज्य पर ध्यान दें:
यूआई पर केवल आवश्यक कार्यक्षमता: कोई अतिभारित मेनू या आइकन जंगल नहीं।
ड्रैग एंड ड्रॉप के माध्यम से सभी फ़ोल्डरों का चयन करें।
अंतिम उपयोग किए गए कॉन्फ़िगरेशन और स्क्रीन सेटिंग्स स्वचालित रूप से सहेजे जाते हैं।
ड्रैग एंड ड्रॉप, लोड-बटन या कमांडलाइन द्वारा विभिन्न विन्यासों को बनाए रखना और लोड करना।
बाहरी अनुप्रयोग शुरू करने के लिए डबल-क्लिक करें (जैसे विंडोज एक्सप्लोरर में फ़ाइल दिखाएं)
सभी ग्रिड डेटा को टेक्स्ट के रूप में कॉपी और पेस्ट करें
सीधे सुपर ग्रिड / अस्थायी फ़ाइलों को मुख्य ग्रिड पर हटा दें।
संदर्भ मेनू पर राइट-क्लिक करें।
व्यापक स्थिति की जानकारी और त्रुटि रिपोर्टिंग
नाम, आकार या तिथि के अनुसार फाइल-सूचियों को क्रमबद्ध करें।
फ़ाइलों के लिए समर्थन 4 GB से बड़ा है।
फ़ाइलों को हटाने या उन्हें अधिलेखित करने के बजाय रीसायकल बिन में स्थानांतरित करने का विकल्प।
डिफ़ॉल्ट फ़िल्टर के साथ निर्देशिका "\ RECYCLER" और "\" सिस्टम वॉल्यूम जानकारी को अनदेखा करें। (केवल विंडोज)
स्थानीयकृत संस्करण कई भाषाओं के लिए उपलब्ध हैं।
कॉपी से पहले हटाएं: बड़ी सिंक-नौकरियों के लिए डिस्क स्थान की कमी से बचें।
समन्वयन से फ़ाइलों को सम्मिलित / बहिष्कृत करने के लिए फ़िल्टर कार्यक्षमता (पुन: तुलना की आवश्यकता के बिना!)।
अस्थायी रूप से सिंक्रनाइज़ेशन से विशिष्ट फ़ाइलों को शामिल / शामिल करें।
FAT / FAT32 वॉल्यूम पर स्वचालित रूप से डेलाइट सेविंग टाइम परिवर्तन को हैंडल करें।
पोर्टेबल संस्करण उपलब्ध (इंस्टॉलर के माध्यम से चयन करने योग्य)।
देशी 64-बिट संस्करण।
FreeFileSync के भीतर से अपडेट के लिए स्वचालित रूप से जांचें।
Windows वॉल्यूम छाया प्रतिलिपि सेवा का उपयोग करके लॉक की गई फ़ाइलों की प्रतिलिपि बनाएँ। (केवल विंडोज)
मैक्रोज़% समय%, निर्देशिका नामों के भीतर% दिनांक% के साथ नियमित बैकअप बनाएं
फाइल और फोल्डर को सिंक्रोनाइज़ करते समय / एक्सेस / संशोधन समय बनाएँ
उन्नत लॉकिंग रणनीति कई सिंक्रनाइज़ेशन प्रक्रियाओं (जैसे कई लेखकों, एक ही नेटवर्क साझा) की अनुमति देने के लिए
मैं इसे हटाए गए फ़ाइलों को प्रबंधित कर सकता हूं, उन्हें ट्रैश या उपयोगकर्ता द्वारा निर्दिष्ट फ़ोल्डर में स्थानांतरित कर सकता हूं। नुकसान को इंगित करने के लिए: प्रोग्राम प्रलेखन विंडोज पर बहुत कम केंद्रित है, लिनक्स पर कम। लेकिन यह अपना काम अच्छी तरह से करता है।
आप विसरित का उपयोग कर सकते हैं:
sudo apt-get install diffuse
diffuse file1 file2
आप मेल्ड ट्राई कर सकते हैं ।
यह रिपॉजिटरी है और फ़ाइल या फ़ोल्डर की तुलना के लिए GUI प्रदान करता है।
IMHO FreeFileSync मेल्ड की तुलना में बहुत अच्छा और अधिक उपयोगी है। यह तेज़ और स्थिर है, कॉस्टयूमेबल सिंक्रोनाइज़ेशन कर सकता है और सीएसवी फ़ाइल में तुलना के परिणाम को निर्यात भी कर सकता है।
क्रॉस-प्लेटफ़ॉर्म, आसान, कोई उपद्रव और प्रोफ़ाइल बचत सुविधाएँ Jfilesync मेरी शीर्ष पसंद नहीं बनाती हैं
File_1.txt
Line1
Line2
File_2.txt
Line1
Line 2
आप कमांड का उपयोग कर सकते हैं cmp
:
cmp -b "File_1.txt" "File_2.txt"
आउटपुट होगा
a b differ: byte 11, line 2 is 62 2 40
आप उपयोग कर सकते diff आदेश:
diff -r --brief dir1 dir2
man diff
-r, --recursive
recursively compare any subdirectories found
-q, --brief
report only when files differ