Cách để sao chép tập tin


10

Tôi muốn chỉ cần sao lưu và lưu trữ các tập tin trên một số máy. Thật không may, các tệp có một số tệp lớn là cùng một tệp nhưng được lưu trữ khác nhau trên các máy khác nhau. Chẳng hạn, có thể vài trăm bức ảnh được sao chép từ máy tính này sang máy tính khác dưới dạng bản sao lưu đặc biệt. Bây giờ tôi muốn tạo một kho lưu trữ tệp chung, tôi không muốn có nhiều bản sao của cùng một bức ảnh.

Nếu tôi sao chép tất cả các tệp này vào một thư mục, có công cụ nào có thể truy cập và nhận ra các tệp trùng lặp và đưa cho tôi một danh sách hoặc thậm chí xóa một trong các bản sao không?


Câu trả lời:


3

Tạo một md5sum của mỗi tệp, sao chép md5sums đề xuất (nhưng không đảm bảo) các tệp trùng lặp.


1
họ thực hiện "đề xuất" mạnh mẽ , tuy nhiên :) .. và nếu các tệp có cùng kích thước, khả năng đề xuất là chính xác là cực kỳ cao
warren

2

Bạn có thể sử dụng song công để biến các tệp giống hệt nhau thành liên kết cứng. Mặc dù vậy, sẽ mất rất nhiều thời gian trên một tập tin lớn. Băm SHA (hoặc MD5) của các tệp gần như chắc chắn sẽ hoạt động nhanh hơn, nhưng bạn sẽ phải làm nhiều việc hơn trong việc tìm kiếm các bản sao. Xác suất va chạm vô tình thấp đến mức trong thực tế bạn có thể bỏ qua nó. (Trên thực tế, nhiều sản phẩm chống trùng lặp đã làm điều này.)

Đặt cược tốt nhất của bạn để đối phó với hình ảnh và âm nhạc là để có được các công cụ phù hợp để tìm các bản sao của các mục cụ thể. Đặc biệt là vì bạn có thể không có các tệp giống hệt nhau ở cấp nhị phân sau khi những thứ như gắn thẻ hoặc cắt xén hoặc mã hóa khác nhau phát huy tác dụng. Bạn sẽ muốn các công cụ có thể tìm thấy các bức ảnh "trông" giống nhau và âm nhạc "âm thanh" giống nhau ngay cả khi các điều chỉnh nhỏ đã được thực hiện cho các tệp.


1
hardlinkrất nhanh (mất 200 giây cho các tệp 1,2 triệu, 320 GB)
Marcel Waldvogel

1

Chà, nếu bạn có khả năng, bạn có thể thiết lập một hệ thống tập tin trùng lặp và đặt các bản sao lưu của bạn vào đó. Điều này sẽ không chỉ lặp lại toàn bộ tập tin, mà cả các phần tương tự của tập tin. Ví dụ: nếu bạn có cùng một JPEG ở một số nơi, nhưng với các thẻ EXIF ​​khác nhau trên mỗi phiên bản, một hệ thống tệp trùng lặp sẽ chỉ lưu trữ dữ liệu hình ảnh một lần.

Các hệ thống tập tin trùng lặp bao gồm lessfs, ZFS và SDFS.


1
Tôi không thể nói về sự trùng lặp trên SDFS hoặc lessfs, nhưng Dedupe trên ZFS không hoạt động như thế này. Nó kiểm tra ở cấp độ khối, vì vậy các tệp giống hệt nhau có thể sẽ được gắn cờ để khấu trừ, nhưng các tệp có tiêu đề khác nhau có thể sẽ không. Ngoài ra, các tệp nhỏ hơn kích thước bản ghi ZFS của bạn (mặc định là 128KB) có thể được đóng gói trong một khối cùng nhau, do đó chúng cũng không được hưởng lợi từ việc khấu trừ.
báo

Hệ thống tập tin bị trùng lặp (zfs hoặc btrfs) chỉ tiết kiệm không gian trên máy chủ sao lưu. Nó không tiết kiệm lượng dữ liệu được chuyển. Đó là một số ý tưởng để tính toán một số băm cho các tập tin và gửi nó đến máy chủ sao lưu. khi nó nói "Tôi có nó", sao lưu cho tập tin đó được thực hiện. Điều này được thực hiện trên phần mềm sao lưu rất tốn kém (tiền). Tôi chưa bao giờ nghe về nó trên nguồn mở. Nhưng có lẽ nó được triển khai ngay bây giờ, ai biết được :)
Znik

@Znik rsync --link-destlà bạn của bạn nếu bạn cũng muốn tiết kiệm khi đọc / chuyển. Giới thiệu đơn giản tại đây: netfuture.ch/2013/08/ Khăn
Marcel Waldvogel

nó đang hoạt động bằng cách kiểm tra các nút được gán cho một tệp. nhưng khi sự trùng lặp bị ẩn, ví dụ như trong hệ thống tập tin squashfs, thì rsync không thể kiểm tra điều này và sẽ chuyển cùng một dữ liệu nhiều lần.
Znik

0

Khi tôi đang làm điều này, tôi đã học được rằng nó thực sự hấp dẫn / hiệu quả về thời gian hơn rất nhiều khi thực sự tự mình xem qua các tệp trong thời gian rảnh, trong vài tuần. Bạn có thể nói sự khác biệt giữa mọi thứ tốt hơn so với máy tính của bạn.

Nếu bạn không đồng ý, thì tôi đề nghị EasyD repeatate Downloader . Tuy nhiên, như tôi đã đề cập ở trên, sẽ mất một thời gian dài, khoảng một ngày cho 5GB tệp.

Và trên một lưu ý khác, Crashplan làm những gì bạn đang làm trước đây, nhưng theo một cách có vấn đề, không phiên bản có tổ chức hơn nhiều.


0

Một khả năng khác, giả sử các máy bạn đang sao lưu sẽ hỗ trợ nó, là sử dụng một cái gì đó như thế rsync.

Nếu bạn rsynctừ A đến B, sau đó từ C đến B, sau đó từ D đến B, v.v., các bản sao chính xác (nghĩa là theo tên tệp) sẽ bị loại bỏ (và được đồng bộ hóa giữa các máy bạn đang sao lưu).

Tuy nhiên, nếu bạn không muốn tất cả chúng được đồng bộ hóa với nhau, đây không phải là cách tốt nhất để đi.


0

Đối với các tệp hình ảnh, sử dụng findimagedupes . Nó cũng được đóng gói trong debian .


findimagedupes dành cho ảnh hoặc đồ họa, có thể được chuyển đổi từ định dạng này sang định dạng khác. hình ảnh (tôi về nhà) chỉ là ví dụ trong câu hỏi. Nó có thể là bất kỳ tập tin lớn khác.
Znik

0

Liên kết cứng chỉ thực hiện sao chép nếu toàn bộ tệp giống hệt nhau. Nếu các tiêu đề (EXIF, ID3, 2006) hoặc siêu dữ liệu (chủ sở hữu) khác nhau, chúng sẽ không được liên kết.

Khi bạn có cơ hội sử dụng một hệ thống tệp có hỗ trợ chống trùng lặp khối (ZFS, btrfs, khắc), hãy sử dụng thay thế. Tôi rất thích hỗ trợ khấu trừ ngoại tuyến (còn gọi là đợt ) của btrfs, hỗ trợ sao chép mức độ và không liên tục tiêu thụ một lượng lớn bộ nhớ (như khấu trừ trực tuyến ZFS).

Sự trùng lặp cũng có lợi thế là người dùng có thể sửa đổi các tập tin mà không cần thông báo bản sao khác (có thể không áp dụng được trong trường hợp của bạn, nhưng ở những người khác).

Xem https://btrfs.wiki.kernel.org/index.php/Ded trùng lặp để có một cuộc thảo luận tuyệt vời.

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.