Cố gắng kết hợp lệnh diff và hiển thị lần sửa đổi cuối cùng giữa các bản sao


0

Tôi đang cố gắng làm một cái gì đó độc đáo một chút và không thể tìm thấy dòng lệnh thiết bị đầu cuối phù hợp để sử dụng.

Tôi đang cố gắng giải quyết vấn đề cơ bản sau:

Tôi có hai khối dữ liệu tồn tại trên các máy chủ riêng biệt. Các tập này có lẽ có nhiều tập tin trùng lặp. Tuy nhiên, do tính chất của các máy chủ này, tôi không thể lập trình xóa bất cứ thứ gì, vì mỗi máy chủ đều là trường hợp sử dụng riêng. Do đó, tôi phải tìm các bản sao giữa hai tập, sau đó sắp xếp tập nào trong hai tập có phiên bản sửa đổi cuối cùng "mới nhất và lớn nhất" của bản dupe và điều tra thủ công từng tập.

Để đơn giản, hãy gọi các tập "Thư mục 1" và "Thư mục 2"

Tôi đã nhận được điều này thông qua Terminal trên máy Mac của tôi:

diff -rs /Folder1 /Folder2 > diff-test1.txt 

Điều này mang lại cho tôi danh tính của các bản sao giữa hai bản, nhưng không cho tôi biết tập nào có 'mới nhất và lớn nhất'. Có ai giúp được không?

Câu trả lời:


0

Tôi sẽ sử dụng hai rsync --dry-runlệnh chứ không phải là một diff. Ví dụ: đưa ra năm tệp trong đó một số tệp mới hơn Folder1và một số tệp mới hơn trong Folder2,

$ ls -port Folder?/*/*
-rw-r--r--  1 Deditos   0 25 Jan 12:39 Folder2/subfolder/file03.txt
-rw-r--r--  1 Deditos   0 25 Jan 12:39 Folder2/subfolder/file02.txt
-rw-r--r--  1 Deditos   0 25 Jan 12:39 Folder2/subfolder/file01.txt
-rw-r--r--  1 Deditos   0 25 Jan 12:39 Folder1/subfolder/file05.txt
-rw-r--r--  1 Deditos   0 25 Jan 12:39 Folder1/subfolder/file04.txt
-rw-r--r--  1 Deditos   0 25 Jan 12:39 Folder1/subfolder/file03.txt
-rw-r--r--  1 Deditos  29 25 Jan 12:44 Folder1/subfolder/file01.txt
-rw-r--r--  1 Deditos  29 25 Jan 12:44 Folder1/subfolder/file02.txt
-rw-r--r--  1 Deditos  29 25 Jan 13:13 Folder2/subfolder/file04.txt
-rw-r--r--  1 Deditos  29 25 Jan 13:13 Folder2/subfolder/file05.txt

Bạn có thể kiểm tra những gì rsync [SRC] [DEST]sẽ sao chép từ một thư mục nguồn để cập nhật một thư mục đích:

$ rsync --dry-run -ariu ./Folder1/ ./Folder2/
.d..t.... ./
.d..t.... subfolder/
>f.st.... subfolder/file01.txt
>f.st.... subfolder/file02.txt
$ rsync --dry-run -ariu ./Folder2/ ./Folder1/
.d..t.... ./
.d..t.... subfolder/
>f.st.... subfolder/file04.txt
>f.st.... subfolder/file05.txt

Điều này cũng cung cấp cho bạn một số thông tin về bản chất của sự khác biệt giữa các tệp, ví dụ: >f.st....có nghĩa là kích thước ( s) và dấu thời gian ( t) khác nhau.

NB Nếu bạn bỏ qua --dry-runcờ thì rsyncthực sự sẽ thử chuyển, vì vậy hãy cẩn thận với điều đó.

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.