Tôi có hai thư mục chứa các tập tin khác nhau. Một số tệp từ thư mục đầu tiên có một bản sao chính xác trong thư mục thứ hai. Tôi muốn thay thế những người có một liên kết cứng. Làm thế nào tôi có thể làm điều đó?
Tôi có hai thư mục chứa các tập tin khác nhau. Một số tệp từ thư mục đầu tiên có một bản sao chính xác trong thư mục thứ hai. Tôi muốn thay thế những người có một liên kết cứng. Làm thế nào tôi có thể làm điều đó?
Câu trả lời:
Tôi biết 4 giải pháp dòng lệnh cho linux. Cái ưa thích của tôi là cái cuối cùng được liệt kê ở đây rdfind
, bởi vì tất cả các tùy chọn có sẵn.
fdupes
Đầu ra mẫu (với các tùy chọn "hiển thị kích thước", "đệ quy"):
$ fdupes -Sr .
17 bytes each:
./Dir1/Some File
./Dir2/SomeFile
liên kết cứng
--dry-run
lựa chọn. Đầu ra mẫu (lưu ý cách hai tệp của tôi có thời gian sửa đổi hơi khác nhau, vì vậy trong lần chạy thứ hai, tôi bảo nó bỏ qua điều đó):
$ stat Dir*/* | grep Modify
Modify: 2015-09-06 23:51:38.784637949 -0500
Modify: 2015-09-06 23:51:47.488638188 -0500
$ hardlink --dry-run -v .
Mode: dry-run
Files: 5
Linked: 0 files
Compared: 0 files
Saved: 0 bytes
Duration: 0.00 seconds
$ hardlink --dry-run -v -t .
[DryRun] Linking ./Dir2/SomeFile to ./Dir1/Some File (-17 bytes)
Mode: dry-run
Files: 5
Linked: 1 files
Compared: 1 files
Saved: 17 bytes
Duration: 0.00 seconds
duff
Đầu ra mẫu (với tùy chọn "đệ quy"):
$ duff -r .
2 files in cluster 1 (17 bytes, digest 34e744e5268c613316756c679143890df3675cbb)
./Dir2/SomeFile
./Dir1/Some File
báo cáo lại
find
?).Đầu ra mẫu:
$ rdfind -dryrun true -makehardlinks true .
(DRYRUN MODE) Now scanning ".", found 5 files.
(DRYRUN MODE) Now have 5 files in total.
(DRYRUN MODE) Removed 0 files due to nonunique device and inode.
(DRYRUN MODE) Now removing files with zero size from list...removed 0 files
(DRYRUN MODE) Total size is 13341 bytes or 13 kib
(DRYRUN MODE) Now sorting on size:removed 3 files due to unique sizes from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on first bytes:removed 0 files from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on last bytes:removed 0 files from list.2 files left.
(DRYRUN MODE) Now eliminating candidates based on md5 checksum:removed 0 files from list.2 files left.
(DRYRUN MODE) It seems like you have 2 files that are not unique
(DRYRUN MODE) Totally, 17 b can be reduced.
(DRYRUN MODE) Now making results file results.txt
(DRYRUN MODE) Now making hard links.
hardlink ./Dir1/Some File to ./Dir2/SomeFile
Making 1 links.
$ cat results.txt
# Automatically generated
# duptype id depth size device inode priority name
DUPTYPE_FIRST_OCCURRENCE 1 1 17 2055 24916405 1 ./Dir2/SomeFile
DUPTYPE_WITHIN_SAME_TREE -1 1 17 2055 24916406 1 ./Dir1/Some File
# end of file
Chỉ huy trùng lặp là một giải pháp khả thi trên Windows:
Copyate Commander là một ứng dụng phần mềm miễn phí cho phép bạn tìm và quản lý các tệp trùng lặp trên PC. Chỉ huy trùng lặp đi kèm với nhiều tính năng và công cụ cho phép bạn khôi phục dung lượng ổ đĩa của mình từ những bản sao đó.
Tính năng, đặc điểm:
Replacing files with hard links Replacing files with soft links ... (and many more) ...
Đối với Linux, bạn có thể tìm thấy một tập lệnh Bash tại đây .
Trình tìm kiếm trùng lặp và cùng tệp là một giải pháp khác trên Windows:
Trình tìm kiếm trùng lặp và cùng tệp (Trình tìm kiếm trùng lặp) là một ứng dụng để tìm kiếm các tệp trùng lặp (bản sao) và các liên kết cứng NTFS đến cùng một tệp. Nó tìm kiếm nội dung tệp trùng lặp bất kể tên tệp (so sánh byte-byte thực được sử dụng). Ứng dụng này không chỉ cho phép xóa các tệp trùng lặp hoặc di chuyển chúng sang vị trí khác mà còn thay thế các bản sao bằng các liên kết cứng NTFS (duy nhất!)
Tôi đã có một công cụ miễn phí tiện lợi trên máy tính của mình có tên là Link Shell Extension; không chỉ tuyệt vời khi tạo Liên kết cứng và Liên kết tượng trưng, mà cả Liên kết nữa! Ngoài ra, nó đã thêm các biểu tượng tùy chỉnh cho phép bạn dễ dàng xác định các loại liên kết khác nhau, ngay cả những liên kết đã tồn tại trước khi cài đặt; Ví dụ, Mũi tên đỏ đại diện cho Liên kết cứng, trong khi Màu xanh lá cây đại diện cho Liên kết tượng trưng ... và chuỗi đại diện cho Liên kết.
Tôi không may gỡ cài đặt phần mềm một lúc trước (trong quá trình gỡ cài đặt hàng loạt các chương trình khác nhau), vì vậy tôi không thể tạo các liên kết nữa theo cách thủ công, nhưng các biểu tượng vẫn tự động hiển thị mỗi khi Windows phát hiện liên kết Hard, Symbolic hoặc Junction.
Tôi rất khuyên bạn nên jdupes . Nó là một nhánh của fdupes nâng cao , nhưng cũng bao gồm:
--linkhard
hoặc -L
viết tắtĐối với câu hỏi của bạn, bạn chỉ có thể thực hiện $ jdupes -L /path/to/your/files
.
Bạn có thể muốn sao chép và xây dựng nguồn mới nhất từ repo GitHub của nó vì dự án vẫn đang được phát triển tích cực.
Các tệp nhị phân của Windows cũng được cung cấp tại đây. Các tệp nhị phân đóng gói có sẵn trong một số bản phân phối Linux / BSD - thực sự lần đầu tiên tôi tìm thấy nó thông qua $ apt search
.