So sánh nội dung của hai thư mục, bao gồm các thư mục con


4

Trong những năm qua, tôi đã nhập ảnh từ iPhone sang Mac và sắp xếp chúng trong thư mục theo tháng.

Bây giờ tôi muốn nhập tất cả ảnh tôi có trên iPhone và so sánh những ảnh đó với các tệp mà tôi đã sắp xếp trong các thư mục trong nhiều năm - nếu có bất kỳ thiếu.

Có công cụ nào (bao gồm trong OSX hoặc miễn phí / có thể mua) hoặc quy trình khác có thể so sánh nội dung thư mục, với một thư mục chứa các tệp trong thư mục gốc và thư mục khác trong nhiều thư mục con không?


So sánh cái gì? số lượng tập tin, kích thước, loại, nội dung?
Ruskes

So sánh sự tồn tại của các tập tin, nếu thiếu / trùng lặp.
Số

Điều đó bạn có thể làm với lệnh Terminal đơn giản "diff -rq library1 folder2"
Ruskes

Liên quan nhiều đến câu hỏi 10252 .
yurkennis

Câu trả lời:


5

Thiết bị đầu cuối: khác

Bạn có thể so sánh hai thư mục trong Terminal bằng lệnh sau:

diff -rq /path/to/folder1 /path/to/folder2

Để bỏ qua phân cấp thư mục, bạn có thể sao chép tất cả các tệp ra khỏi thư mục vào thư mục thứ ba, sau đó so sánh các tệp sau:

find /path/to/folder2 -mindepth 2 -type f -print -exec cp {} /path/to/folder3 \;

1
Làm cách nào để kiểm tra tất cả các tệp trong một thư mục, bao gồm cả các tệp trong thư mục con? Các thư mục con sẽ không giống nhau trong các thư mục mẹ so sánh.
Số

@Numbers Tôi tin rằng tôi đã hiểu nhầm câu hỏi của bạn; Tôi không nghĩ bạn có thể làm điều đó nhưng trước tiên bạn có thể sao chép tất cả các bức ảnh ra khỏi các thư mục con vào một thư mục thứ hai để so sánh. Tất nhiên điều này phụ thuộc vào số lượng ảnh bạn có.
grg

1
Đó là các thư mục 25 GB và 100 và tôi muốn giữ chúng trong các thư mục. Nhưng tôi sẽ tìm cách.
Số

1
@Numbers Tôi hiểu rằng bạn muốn giữ chúng trong các thư mục. Tôi có nghĩa là sao chép chúng chỉ để so sánh, sau đó xóa những cái đã sao chép. Ví dụ, chạy một cái gì đó như find /path/to/folder2 -mindepth 2 -type f -print -exec cp {} /path/to/folder3 \;, sau đó là diff, sau đó xóa thư mục3.
grg

2

Đây là một chủ đề cũ, tôi nhận ra, nhưng có vẻ như câu hỏi chưa được trả lời đầy đủ. Tôi đã vấp phải điều này trước khi cố gắng tìm ra những điều tương tự cho chính mình, vì vậy tôi nghĩ rằng tôi sẽ đăng một tùy chọn trong trường hợp những người khác vấp phải nó ...

Một số câu trả lời đã ở gần đó ... và tôi có thể thực hiện dễ dàng hơn, nhưng nó hiệu quả!

Điều này sẽ tạo một tập tin của tất cả các tên ảnh của bạn:

tìm / Đường dẫn / đến / thư mục / trên cùng / của / hình ảnh -mindepth 2 -type f -print | sed 's / ^ .*///' | sắp xếp> / tmp / hình ảnh từ thư mục

Nếu bất kỳ thư mục nào thuộc sở hữu của người khác, hãy thêm vào sudo và sử dụng >> để nối các tên tệp đó vào các tệp đã có trong tệp ban đầu.

sử dụng một lệnh tương tự để tạo tệp thứ hai chứa tất cả tên tệp ảnh của điện thoại của bạn.

Bạn chỉ có thể thực hiện một khác biệt và gửi đến một tệp có> hoặc, nếu bạn biết tập nào là lớn nhất, hãy sử dụng tập tin đó như tập tin1 và làm

tập tin khác biệt1 tập tin2 | egrep -v '<'> tệp đầu ra

Tất nhiên, tất cả các đường dẫn đã bị tước bởi sed trong tìm kiếm nội bộ để tạo ra tên tệp. Nếu bạn thấy một cái gì đó có thể bị thiếu, bạn muốn biết nó ở đâu, vì vậy hãy sử dụng

sudo find / Đường dẫn / đến / thư mục / trên cùng / của / photos -name 'tên tệp-bạn-muốn' -ls

và điều đó sẽ cho bạn biết nó ở đâu.

Hi vọng điêu nay co ich. Tôi đã giúp tôi tìm ra những gì tôi cần giữ từ một thư mục nhà cũ của tôi không có trong thư mục nhà mới của tôi. Tiết kiệm 65 không gian!

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.