ฉันกำลังมองหาสิ่งที่จะเปรียบเทียบไดเรกทอรีและไฟล์เช่น Beyond Compare สำหรับ Windows
ส่วนใหญ่ใช้สำหรับการควบคุมแหล่งข้อมูล แต่ฉันจำเป็นต้องใช้สำหรับการปรับใช้ด้วย
ฉันกำลังมองหาสิ่งที่จะเปรียบเทียบไดเรกทอรีและไฟล์เช่น Beyond Compare สำหรับ Windows
ส่วนใหญ่ใช้สำหรับการควบคุมแหล่งข้อมูล แต่ฉันจำเป็นต้องใช้สำหรับการปรับใช้ด้วย
คำตอบ:
Meld เป็นเครื่องมือที่สามารถเปรียบเทียบและรวมไฟล์และไดเรกทอรี มันเป็นแบบอะนาล็อก GUI กับเครื่องมือมาตรฐานdiff
และpatch
บรรทัดคำสั่ง (ดูต่างคนและคนที่แพทช์สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเหล่านั้น)
นอกจากนี้ระบบควบคุมแหล่งข้อมูลจำนวนมาก (เช่นbzr
หรือgit
) มีความสามารถในการสร้างความแตกต่างระหว่างเวอร์ชัน
beyond compare
ด้านล่าง ดีกว่า meld imho
ต่างเป็นเพื่อนของคุณ
diff -ur path1 path2
สิ่งนี้จะเปรียบเทียบไฟล์ทั้งหมดที่มีร่วมกันระหว่าง path1 และ path2
หากคุณเปลี่ยน-ur
เป็น-urN
แล้วจะแสดงเนื้อหาของไฟล์ที่มีอยู่ในหนึ่งในพา ธ เท่านั้น
colordiff
และใช้แล้วcolordiff -ur path1 path2
'Beyond Compare' มีให้สำหรับ Linux เช่นกัน
ตรวจสอบ 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
จะใช้เพื่อซิงค์ไดเรกทอรี แต่คุณสามารถเรียกใช้ในโหมด verbose และ dry ดังนั้นจะแสดงรายการไฟล์ที่จะต้องเปลี่ยนเท่านั้น
rsync -rvnc --delete folder1 server:/path/to/folder2
คุณสามารถ ommit c
หากคุณต้องการเปรียบเทียบไฟล์ตามเวลาและขนาดไฟล์เพื่อเร่งความเร็วทุกอย่าง:
rsync -rvn --delete folder1 server:/path/to/folder2
Krusader เป็นเครื่องมือฟรี (มีให้ใน Software Center) ที่แสดงเนื้อหาของโฟลเดอร์โดยเปรียบเทียบและคุณสามารถซิงโครไนซ์กับตัวเลือกต่าง ๆ มากมาย คุณสามารถกรองได้ในขณะที่ทำการซิงโครไนซ์และเปรียบเทียบ
ในการเปรียบเทียบเนื้อหาไฟล์คุณเพียงทำเครื่องหมายสองไฟล์ให้เลือก "file"> "เปรียบเทียบเนื้อหา" และเปรียบเทียบด้วยตัวอักษรตามตัวอักษร เครื่องมือเปรียบเทียบเริ่มต้นที่ใช้โดย krusader เป็นเครื่องมือ KDE เริ่มต้น " Kompare " คุณสามารถตั้งค่า krusader ให้ใช้เครื่องมือเปรียบเทียบอื่น ๆ - เช่นหนึ่งในตัวอย่างข้างต้น
นี่เป็นทางออกที่สมบูรณ์แบบที่สุดที่ฉันเคยพบและสะดวกมาก และรองรับฟังก์ชั่น keybindungs ทั้งหมดที่ใช้โดยผู้บัญชาการเที่ยงคืน (ไวยากรณ์ผู้บัญชาการ norton)
พร้อมเพรียงเป็นเครื่องมือซิงโครไนซ์ไฟล์ที่รวดเร็วที่ใช้อัลกอริทึม rsync และช่วยให้คุณดูตัวอย่างความแตกต่างก่อนที่จะอัปเดตระหว่าง 2 ตำแหน่งไม่ว่าจะอยู่ในระยะไกลหรือในพื้นที่
ฉันเรียนรู้เกี่ยวกับแฮชดีพเมื่อสองสัปดาห์ที่แล้ว และมันก็มีข้อดีที่แข็งแกร่ง:
meld
มันทำงานได้ดีสำหรับโฟลเดอร์ที่มีขนาดใหญ่มาก ในกรณีmeld
ที่ช้ามากและ UI ไม่ตอบสนอง (ถูกบล็อค) hashdeep จะทำงานด้วยความเร็วคงที่rsync
hashdeep ตรวจพบไฟล์ที่ถูกย้าย - ไฟล์ที่มีเนื้อหาเดียวกันเพียงแค่อยู่ในไดเรกทอรีอื่นการส่งออก verbose เป็นเช่น:
...
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
วิธีที่ดีในการเปรียบเทียบนี้คือใช้ " find " กับ " md5sum " จากนั้นเป็น " diff "
ตัวอย่าง:
ใช้ find เพื่อแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีจากนั้นคำนวณ md5 hash สำหรับแต่ละไฟล์และไปป์ที่ไฟล์:
$find /dir1/ -type f -exec md5sum {} \; > dir1.txt
ทำโพรซีเดอร์เดียวกันกับไดเร็กทอรีอื่น:
$find /dir2/ -type f -exec md5sum {} \; > dir2.txt
จากนั้นเปรียบเทียบผลลัพธ์สองไฟล์ด้วย "diff":
$diff dir1.txt dir2.txt
กลยุทธ์นี้มีประโยชน์มากเมื่อเปรียบเทียบสองไดเรกทอรีที่ไม่ได้อยู่ในเครื่องเดียวกันและคุณต้องตรวจสอบให้แน่ใจว่าไฟล์มีความเท่าเทียมกันในทั้งสองไดเรกทอรี
อีกวิธีที่ดีในการทำงานคือการใช้คอมไพล์
git diff --no-index dir1/ dir2/
ด้วยความเคารพ!
ลองFreeFileSyncด้วย มันมีอินเตอร์เฟซที่ดีความเร็วในการเปรียบเทียบที่ยอมรับได้การกรองผลการเปรียบเทียบที่ดีวิธีการซิงค์ที่แตกต่างกัน มันมาพร้อมกับเครื่องมือตรวจสอบโฟลเดอร์ (RealTimeSync) ที่สามารถเรียกใช้ FreeFileSync (จริง ๆ แล้วคำสั่งหรือสคริปต์) เมื่อโฟลเดอร์ (หรือโฟลเดอร์) หรือโฟลเดอร์เฉพาะนั้นเปลี่ยนแปลงหรือเปลี่ยนแปลงไฟล์ภายใน ลองทำดูแล้วคุ้มค่าจริงๆ
ข้อมูลเพิ่มเติมเกี่ยวกับที่นี่หรือที่นี่ที่คุณมีPPAเช่นกัน
จากหน้าคุณสมบัติสำคัญ:
เปรียบเทียบไฟล์ (bytewise หรือตามวันที่) และทำให้ข้อมูลตรงกัน
ไม่มีข้อ จำกัด : สามารถซิงโครไนซ์ไฟล์ได้จำนวนหนึ่ง
รองรับ Unicode
รองรับเครือข่าย
การสนับสนุนชื่อไฟล์ที่มีความยาวมากในตัว (มากกว่า MAX_PATH = 260 ตัวอักษร)
ฐานข้อมูลการประสานสำหรับการเผยแพร่ไฟล์ที่ถูกลบและการตรวจสอบความขัดแย้ง
รองรับการจับคู่หลาย ๆ โฟลเดอร์ด้วยการกำหนดค่าที่แตกต่างกัน
สนับสนุนอย่างเต็มที่สำหรับลิงค์สัญลักษณ์ Windows / Linux และจุดเชื่อมต่อของ Windows
UI แบบลีนและเข้าถึงได้ง่าย: เหมาะอย่างยิ่งสำหรับความเร็วและชุดข้อมูลขนาดใหญ่
อัลกอริทึมที่เข้ารหัสใน C ++ อย่างสมบูรณ์
ตัวบ่งชี้ความคืบหน้าทั้งหมดได้รับการปรับปรุงเพื่อประสิทธิภาพสูงสุด!
สร้าง Batch Jobs สำหรับการซิงโครไนซ์อัตโนมัติโดยมีหรือไม่มี GUI
มุ่งเน้นไปที่การใช้งาน:
ฟังก์ชั่นที่จำเป็นเท่านั้นใน UI: ไม่มีเมนูหรือไอคอนป่ามากเกินไป
เลือกโฟลเดอร์ทั้งหมดด้วยการลากและวาง
การกำหนดค่าที่ใช้ล่าสุดและการตั้งค่าหน้าจอจะถูกบันทึกโดยอัตโนมัติ
บำรุงรักษาและโหลดการกำหนดค่าที่แตกต่างกันโดยการลากและวาง, ปุ่มโหลดหรือ commandline
ดับเบิลคลิกเพื่อเริ่มแอปพลิเคชันภายนอก (เช่นแสดงไฟล์ใน Windows Explorer)
คัดลอกและวางข้อมูลกริดทั้งหมดเป็นข้อความ
ลบไฟล์ที่ไม่จำเป็น / ชั่วคราวบนกริดหลักโดยตรง
คลิกขวาที่เมนูบริบท
ข้อมูลสถานะที่ครอบคลุมและการรายงานข้อผิดพลาด
เรียงรายการไฟล์ตามชื่อขนาดหรือวันที่
รองรับไฟล์ขนาดใหญ่กว่า 4 GB
ตัวเลือกในการย้ายไฟล์ไปที่ Recycle Bin แทนที่จะลบ / เขียนทับไฟล์เหล่านั้น
ละเว้นไดเรกทอรี "\ RECYCLER" และ "\ System Volume Information" ด้วยตัวกรองเริ่มต้น (Windows เท่านั้น)
เวอร์ชันที่แปลเป็นภาษานั้นมีให้ในหลายภาษา
ลบก่อนคัดลอก: หลีกเลี่ยงการขาดแคลนพื้นที่ดิสก์สำหรับงานซิงค์ขนาดใหญ่
กรองการทำงานเพื่อรวม / ไม่รวมไฟล์จากการซิงโครไนซ์ (โดยไม่ต้องมีการเปรียบเทียบอีกครั้ง!)
รวม / แยกไฟล์เฉพาะจากการซิงโครไนซ์ชั่วคราว
จัดการการเปลี่ยนแปลงการปรับเวลาตามฤดูกาลโดยอัตโนมัติสำหรับปริมาณ FAT / FAT32
มีรุ่นพกพา (เลือกได้ผ่านตัวติดตั้ง)
รุ่นเนทิฟ 64 บิต
ตรวจสอบการอัปเดตจากภายใน FreeFileSync โดยอัตโนมัติ
คัดลอกไฟล์ที่ล็อคโดยใช้ Windows Volume Shadow Copy Service (Windows เท่านั้น)
สร้างการสำรองข้อมูลปกติด้วยแมโคร% time%,% date% ภายในชื่อไดเรกทอรี
คัดลอกไฟล์และโฟลเดอร์เวลาในการสร้าง / เข้าถึง / แก้ไขเมื่อทำการซิงโครไนซ์
กลยุทธ์การล็อคขั้นสูงเพื่อให้กระบวนการซิงโครไนซ์หลายครั้ง (เช่นนักเขียนหลายคนแชร์เครือข่ายเดียวกัน)
ฉันจะเพิ่มมันสามารถจัดการไฟล์ที่ถูกลบย้ายมันไปที่ถังขยะหรือโฟลเดอร์ที่ระบุโดยผู้ใช้ เพื่อชี้ให้เห็นข้อเสีย: เอกสารของโปรแกรมเน้นไปที่ Windows, Linux น้อยกว่า แต่มันทำงานได้ดี
คุณสามารถใช้การกระจาย:
sudo apt-get install diffuse
diffuse file1 file2
Eclipse IDE เป็นบิตเฮฟวี่เวทเล็กน้อยหากคุณเพิ่งทำการเปรียบเทียบ แต่มันทำงานได้ดีในสิ่งอื่น ๆ คุณสามารถเลือก 2 โครงการพา ธ หรือไฟล์และเปรียบเทียบกับโครงการอื่นและยังซิงโครไนซ์กับเซิร์ฟเวอร์ตัวควบคุมแหล่งที่มา
IMHO FreeFileSync ดีมากและมีประโยชน์มากกว่า Meld มันรวดเร็วและมีเสถียรภาพสามารถทำการซิงโครไนซ์ที่ปรับราคาได้และยังสามารถส่งออกผลลัพธ์ของการเปรียบเทียบลงในไฟล์ csv
คุณสมบัติข้ามแพลตฟอร์มที่ง่ายไม่ยุ่งยากและประหยัดโปรไฟล์ทำให้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