Làm thế nào để xóa các tập tin trùng lặp của hai thư mục?


2

Tôi mới nắm bắt được Linux Terminal nhưng tôi vẫn mắc lỗi:

Gần đây tôi đã quản lý sai để sao chép tất cả các tệp có trong một thư mục (bao gồm tất cả các thư mục con) vào một thư mục khác.

Có cách nào dễ dàng để xác định tất cả các tệp có trong thư mục gốc (bao gồm các thư mục con) và xóa từng tệp khỏi thư mục khác không? ví dụ: Thư mục / nguồn chứa tệp file1 và file2 và thư mục con / nguồn / phụ chứa tệp file3 và file4.

Thư mục / đích chứa các tệp file1, file2, file3, file4, file5 và file6.

Làm cách nào tôi có thể phân tích / nguồn và thư mục con của nó cho các tệp và chỉ xóa các tệp này khỏi / đích để / đích chỉ còn lại chứa tệp5 và tệp6?

Rất cám ơn.

Câu trả lời:


1

Bạn có thể duyệt qua từng tệp theo cách thủ công, đọc từ danh sách (có thể xuất ra từ ls -lR sourcehoặc find source -type f) và xóa bản sao khỏi thư mục đích ...

Hoặc sử dụng findmd5sumkiểm tra các tệp thực sự giống hệt nhau (không chỉ các tệp có tên tương tự), so sánh md5sumđầu ra được sắp xếp cho từng thư mục, tìm các dòng trùng lặp và xóa các tệp trùng lặp vi phạm khỏi một thư mục.

Hoặc (có lẽ là tốt nhất ) bạn có thể sử dụng một chương trình tìm tệp trùng lặp, như fdupeshoặc fslint , cả hai đều có thể tìm thấy các tệp trùng lặp, thậm chí một tệp có GUI đẹp. Chỉ cần đảm bảo chỉ trỏ chúng vào các thư mục "nguồn" và "đích" mong muốn của bạn.

Xem câu hỏi khác này cho một số tùy chọn (thay đổi "di chuyển đến nơi khác" thành "xóa"):

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.