Công cụ so sánh tập tin và thư mục?


149

Tôi đang tìm kiếm thứ gì đó sẽ so sánh các thư mục và tệp như Beyond So sánh với windows.

Nó chủ yếu để sử dụng kiểm soát nguồn, nhưng tôi cũng cần sử dụng nó để triển khai.


Bạn có muốn chỉ danh sách tập tin hoặc nội dung thực tế của mỗi tập tin?
Martin Uting

Tôi muốn danh sách tệp và nếu có thể các nội dung khác nhau giữa các tệp có cùng đường dẫn.
isoman

2
Sẽ rất hữu ích nếu công cụ GUI cho phép ẩn các thư mục và tệp giống hệt nhau . Điều này sẽ giúp việc tập trung vào các thư mục & tệp lẻ dễ dàng hơn nhiều. Có ai biết một công cụ hỗ trợ tính năng này không?
JJD

Có một cái nhìn tại unison . Ngoài so sánh, phương pháp "một cửa làm tất cả", trong khi unison tập trung vào xử lý chuyển động của cây, giữ trạng thái và lan truyền thay đổi, bao trùm các tính năng Beyond So sánh bằng cách ủy thác các thứ như diff, hợp nhất 3 chiều, v.v. chương trình yêu thích làm việc ở cấp độ tập tin. Unison là phần mềm miễn phí, rất mạnh mẽ và trưởng thành, có thể nhanh chóng phát hiện và đồng bộ hóa các cây khổng lồ, thông qua mạng giữa các hệ điều hành khác nhau, v.v. Đọc tài liệu trước, đặc biệt là trên Windows.
Stéphane Gourmetichon 7/2/2016

emacs có một công cụ so sánh thư mục. Giống như mọi thứ khác, kẹo mắt là "kẹo mắt thậm chí có nghĩa là gì?" khác biệt được mã hóa với các tùy chọn khác nhau, hợp nhất tương tác, tuyên truyền hoặc thực hiện các chỉnh sửa tùy ý trên các tệp, dễ dàng chuyển đến tệp hoặc thư mục tiếp theo, theo dõi trạng thái, với tất cả các phương tiện chỉnh sửa thông thường.
Stéphane Gourichon

Câu trả lời:


175

Meldcài đặt meld

Meld là một công cụ có thể so sánh và hợp nhất các tập tin và thư mục. Nó là một GUI tương tự như các công cụ dòng lệnh diff cài đặt diffutilsvà tiêu chuẩn patch cài đặt bản vá. (Xem bản vá man diffman để biết thêm chi tiết về những thứ đó)

nhập mô tả hình ảnh ở đây

Ngoài ra, rất nhiều hệ thống kiểm soát nguồn (như bzr cài đặt bzr-gtkhoặc git cài đặt git) có khả năng tạo khác biệt giữa các phiên bản.


2
Meld là TUYỆT VỜI. Tôi sử dụng nó như là kiểm soát nguồn khác nhau của tôi.
Matt Joiner

12
Chỉ cần thử trên một thư mục lớn hơn - 4 GB, 2000 tệp. Chức năng của meld là như mong muốn. Nhưng đối với thư mục này, meld cực kỳ chậm và UI không phản hồi (khối). Sử dụng rsync ngay bây giờ.
geekQ

1
Cũng hoạt động tuyệt vời trong việc so sánh các tệp văn bản cạnh nhau, hoặc thậm chí sao chép các công cụ dán. Giao diện tốt nhất tôi từng thấy!
Stefan Rogin

@geekQ như một sự thay thế nhanh chóng, có thể xử lý một thư mục lớn như bạn muốn ngay lập tức, xem beyond comparebên dưới. vượt trội so với meld
imho

Meld gặp sự cố mỗi khi tôi muốn chọn một thư mục: / Tôi có phiên bản mới nhất có sẵn trên kho phân phối của mình (Ubuntu 14.04)
Youda008

44

Diff là bạn của bạn.

diff -ur path1 path2

Điều này sẽ so sánh tất cả các tệp phổ biến giữa path1 và path2.

Nếu bạn thay đổi -urthành -urNthì nó cũng sẽ hiển thị nội dung của các tệp chỉ có trong một trong các đường dẫn.


1
Được cài đặt colordiffvà sử dụngcolordiff -ur path1 path2
warvariuc

Không hoạt động trong cygwin.
Tomáš Zato


13

Sử dụng difflệnh:

diff -u file1 file2

diff -uchọn một định dạng với một vài dòng ngữ cảnh. Một đồng bằng diff file1 file2chỉ liệt kê các dòng khác nhau. Có nhiều tùy chọn khác để kiểm soát định dạng đầu ra, bỏ qua các khác biệt chỉ có khoảng trắng, v.v.

Nếu bạn muốn ghi đầu ra vào một tệp, hãy chuyển hướng nó:

diff -u file1 file2 >file1-file2.diff

12

Chỉ huy Gnomecài đặt Gnome Commander

Giao diện có thể không thực sự gợi cảm, nhưng nó cực kỳ mạnh mẽ!

văn bản thay thế

Và nếu bạn đã quen với * Commander khác (như Norton, hoặc những thứ tương tự), bạn sẽ không bị lạc.


1
Tôi chưa sử dụng nó để so sánh 2 tệp, nhưng tôi đã sử dụng nó để cho tôi biết các tệp nào khác nhau khi so sánh với các thư mục. Điều này đặc biệt hữu ích khi phân loại ảnh ;-)
Huygens

10

Công cụ dòng lệnh

Lấy cảm hứng từ mục blog này .

khác

Liệt kê các tệp khác nhau:

diff -qr folder1 folder2

Liệt kê nội dung cũng:

diff -Naur folder1 folder2

rsync

Nếu hai thư mục không nằm trên cùng một máy, rsynccó thể là giải pháp dễ nhất. Thường rsyncđược sử dụng để đồng bộ hóa các thư mục, nhưng bạn có thể chạy nó ở chế độ dài và khô, vì vậy nó sẽ chỉ liệt kê các tệp mà nó sẽ phải thay đổi.

rsync -rvnc --delete folder1 server:/path/to/folder2

Bạn có thể tham gia cnếu bạn muốn so sánh các tệp dựa trên dấu thời gian và kích thước tệp để tăng tốc mọi thứ:

rsync -rvn --delete folder1 server:/path/to/folder2

9

Krusadercài đặt krusader

Krusader là một công cụ miễn phí (có sẵn trong Trung tâm phần mềm) hiển thị nội dung thư mục so sánh và bạn có thể đồng bộ hóa với rất nhiều tùy chọn khác nhau. Bạn có thể lọc trong khi đồng bộ hóa và so sánh.

Krusader

Để so sánh nội dung tệp, bạn chỉ cần đánh dấu hai tệp chọn "tệp"> "so sánh nội dung" và chúng được so sánh trên cơ sở từng chữ cái. công cụ so sánh mặc định được sử dụng bởi krusader là công cụ KDE mặc định " Kompare ". Bạn có thể đặt krusader để sử dụng bất kỳ công cụ so sánh nào khác - ví dụ như một trong những công cụ trên.

Đây là giải pháp đầy đủ nhất tôi từng tìm thấy và nó rất thuận tiện. Và nó hỗ trợ tất cả các keybindung chức năng được sử dụng bởi chỉ huy nửa đêm (cú pháp chỉ huy norton).


Bạn cũng có thể sử dụng "Công cụ -> Đồng bộ hóa Thư mục" để có được tệp đệ quy thay đổi giao diện của hai bảng thư mục.
Angelos Pikoulas

không may là bộ đồng bộ hóa trong krusader không được phát hiện: bug.kde.org/show_orms.cgi?id=270150#c7 . Có một sự thay thế được duy trì tích cực?
rubo77

1
@ rubo77: lỗi này đã được sửa trong thời gian này.
mivk

9

KĐ3 cài đặt kdiff3

Đây là một giao diện đồ họa khác biệt cho người dùng KDE (hoặc nếu bạn không phiền khi sử dụng ứng dụng Qt).

kdiff3

Ngoài ra còn có dirdiff cài đặt dirdiff cho các thư mục.



4

Unison là một công cụ đồng bộ hóa tệp nhanh sử dụng thuật toán rsync và cho phép bạn xem trước các khác biệt trước khi cập nhật giữa 2 vị trí, có thể là từ xa hoặc cục bộ.


4

Tôi đã học về hashdeep hai tuần trước. Và nó có một số lợi thế mạnh:

  • Ngược lại meld, nó hoạt động tốt cho các thư mục rất lớn. Khi meldtrở nên cực kỳ chậm và UI không phản hồi (bị chặn), hashdeep chỉ hoạt động ở tốc độ không đổi
  • Ngược lại rsync, hashdeep phát hiện các tệp đã di chuyển - các tệp có cùng nội dung, chỉ trong một thư mục khác.

Đầu ra dài dòng giống như:

...
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

4

Một cách tốt để thực hiện so sánh này là sử dụng " find " với " md5sum ", sau đó là " diff ".

Thí dụ:

Sử dụng find để liệt kê tất cả các tệp trong thư mục, sau đó tính toán băm md5 cho mỗi tệp và chuyển nó thành một tệp:

$find /dir1/ -type f -exec md5sum {} \; > dir1.txt

Làm thủ tục tương tự với thư mục khác:

$find /dir2/ -type f -exec md5sum {} \; > dir2.txt

Sau đó so sánh kết quả hai tệp với "diff":

$diff dir1.txt dir2.txt

Chiến lược này rất hữu ích khi hai thư mục được so sánh không nằm trong cùng một máy và bạn cần đảm bảo rằng các tệp bằng nhau trong cả hai thư mục.

Một cách khác để thực hiện công việc là sử dụng git

git diff --no-index dir1/ dir2/

Trân trọng!


3

Hãy thử FreeFileSync . Nó có một giao diện tốt, tốc độ so sánh chấp nhận được, lọc tốt kết quả so sánh, các cách khác nhau của quá trình đồng bộ hóa. Nó đi kèm với một công cụ giám sát thư mục (RealTimeSync) có thể khởi chạy FreeFileSync (thực tế là bất kỳ lệnh hoặc tập lệnh nào) khi thư mục cụ thể (hoặc thư mục) hoặc các tệp trong đó bị thay đổi. Thực sự đáng thử.

Thông tin thêm về nó ở đây hoặc ở đây , nơi bạn có một PPA , quá

Từ trang của họ, các tính năng chính:

So sánh các tệp (bytewise hoặc theo ngày) và đồng bộ hóa chúng.

Không có giới hạn: Số lượng tệp tùy ý có thể được đồng bộ hóa.

Hỗ trợ Unicode.

Hỗ trợ mạng.

Hỗ trợ tích hợp cho tên tệp rất dài (hơn MAX_PATH = 260 ký tự).

Cơ sở dữ liệu đồng bộ hóa để tuyên truyền các tệp bị xóa và phát hiện xung đột

Hỗ trợ nhiều cặp thư mục có cấu hình riêng biệt

Hỗ trợ đầy đủ cho Windows / Linux Symbolic Links và Windows Junction Points.

UI gọn gàng và dễ truy cập: Tối ưu hóa cao cho tốc độ và bộ dữ liệu khổng lồ.

Các thuật toán được mã hóa hoàn toàn trong C ++.

Tất cả các chỉ số tiến độ được tối ưu hóa cho hiệu suất tối đa!

Tạo Batch Jobs để tự động đồng bộ hóa có hoặc không có GUI.

Tập trung vào khả năng sử dụng:

Chỉ có chức năng cần thiết trên UI: không có menu quá tải hoặc rừng biểu tượng.

Chọn tất cả các thư mục thông qua kéo và thả.

Cấu hình và cài đặt màn hình được sử dụng lần cuối được lưu tự động.

Duy trì và tải các cấu hình khác nhau bằng cách kéo và thả, nút tải hoặc dòng lệnh.

Bấm đúp để bắt đầu ứng dụng bên ngoài (ví dụ: hiển thị tệp trong Windows Explorer)

Sao chép và dán tất cả dữ liệu lưới dưới dạng văn bản

Xóa các tập tin thừa / tạm thời trực tiếp trên lưới chính.

Nhấp chuột phải vào menu ngữ cảnh.

Thông tin toàn diện về tình trạng và báo cáo lỗi

Sắp xếp danh sách tập tin theo tên, kích thước hoặc ngày.

Hỗ trợ cho các tập tin lớn hơn 4 GB.

Tùy chọn để di chuyển tệp vào Thùng rác thay vì xóa / ghi đè chúng.

Bỏ qua các thư mục "\ RECYCLER" và "\ Thông tin khối lượng hệ thống" với Bộ lọc mặc định. (Chỉ dành cho Windows)

Phiên bản địa phương có sẵn cho nhiều ngôn ngữ.

Xóa trước khi sao chép: Tránh tình trạng thiếu không gian đĩa cho các công việc đồng bộ hóa lớn.

Chức năng lọc để bao gồm / loại trừ các tệp khỏi đồng bộ hóa (mà không yêu cầu so sánh lại!).

Bao gồm / loại trừ các tệp cụ thể khỏi đồng bộ hóa tạm thời.

Tự động xử lý thay đổi thời gian tiết kiệm ánh sáng ban ngày trên âm lượng FAT / FAT32.

Phiên bản di động có sẵn (có thể lựa chọn thông qua trình cài đặt).

Phiên bản 64-bit gốc.

Tự động kiểm tra các bản cập nhật từ trong FreeFileSync.

Sao chép các tệp bị khóa bằng Windows Volume Shadow Copy Service. (Chỉ dành cho Windows)

Tạo bản sao lưu thường xuyên với macro% time%,% date% trong tên thư mục

Sao chép thời gian tạo / truy cập / sửa đổi tệp và thư mục khi đồng bộ hóa

Chiến lược khóa nâng cao để cho phép nhiều quy trình đồng bộ hóa (ví dụ: nhiều người viết, cùng chia sẻ mạng)

Tôi thêm nó có thể quản lý các tệp đã xóa, di chuyển chúng vào Thùng rác hoặc thư mục được chỉ định bởi người dùng. Để chỉ ra nhược điểm: tài liệu chương trình tập trung khá nhiều vào Windows, ít hơn về Linux. Nhưng nó làm công việc của nó độc đáo.


3

Bạn có thể sử dụng khuếch tán:

sudo apt-get install diffuse
diffuse file1 file2

2
Tôi thường sử dụng Diffuse cho một tính năng sát thủ - khả năng thiết lập các neo hợp nhất theo cách thủ công. Nó không làm các thư mục (chưa), nhưng đối với các khác biệt cá nhân và lộn xộn, tính năng neo là tuyệt vời.
Sk606

2

Bạn có thể thử meld .

Đó là kho lưu trữ và cung cấp GUI để so sánh tệp hoặc thư mục.


1
Meld là một GUI cho diff, btw.
Marco Ceppi

1

IDE Eclipse là một chút nặng nề nếu bạn chỉ đang so sánh, nhưng nó làm rất tốt điều đó, trong số những thứ khác. Bạn có thể chọn 2 dự án, đường dẫn hoặc tệp và so sánh chúng với nhau, đồng thời cũng đồng bộ hóa với các máy chủ kiểm soát nguồn.


1

IMHO FreeFileSync rất tốt và hữu ích hơn Meld. Nó nhanh và ổn định, có thể thực hiện đồng bộ hóa chi phí và cũng có thể xuất kết quả so sánh thành tệp csv.

Liên kết Lanchpad



0

Để so sánh các tập tin

File_1.txt
Line1
Line2

File_2.txt
Line1
Line 2

Bạn có thể sử dụng lệnh cmp:

cmp -b "File_1.txt" "File_2.txt"

đầu ra sẽ là

a b differ: byte 11, line 2 is  62 2  40  

Để so sánh các thư mục (nhu cầu của bạn):

bạn có thể sử dụng lệnh diff :

diff -r --brief dir1 dir2

man diff

  -r, --recursive
              recursively compare any subdirectories found

   -q, --brief
          report only when files differ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.