So sánh nội dung của hai thư mục từ dòng lệnh
Để so sánh và liệt kê các nội dung khác nhau của hai thư mục mà không có đầu ra bổ sung mà bạn nhận được thông qua các lệnh như diff, bạn có thể sử dụng lệnh comm để thay thế. Để bắt đầu, hãy khởi chạy Terminal và gõ lệnh sau, điều chỉnh đường dẫn thư mục cho phù hợp:
comm -3 <(ls -1 thư mục1) <(ls -1 thư mục2)
Đầu ra được liệt kê sẽ là các tệp khác nhau trong mỗi thư mục, với các tệp duy nhất cho thư mục 1 được căn trái và các tệp duy nhất cho thư mục 2 được căn phải.
Ví dụ: để so sánh nội dung của thư mục có tên “Pictures” và thư mục có tên “OldPictures”, cả hai đều được lưu trữ trong thư mục tải xuống của người dùng, cú pháp sẽ như sau:
comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)
Đầu ra có thể giống như sau:
$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures) Thư mục-1-File.PNG -2-File copy.PNG ảnh 1 copy.PNG ảnh 3.PNG
Lưu ý thụt lề, cho bạn biết tệp nào là duy nhất cho mỗi thư mục. Trong ví dụ trên, tệp “ảnh 1 copy.PNG” và “ảnh 3.png” được căn phải, do đó chúng là duy nhất đối với thư mục OldPictures và Thư mục-1-Tệp.PNG và Thư mục-2-Bản sao tệp.PNG là duy nhất cho thư mục Ảnh gốc.
Điều này hoạt động rất tốt trong Mac OS X, nhưng nó là một lệnh unix chung nên bạn cũng sẽ thấy nó có thể sử dụng được trong linux và các biến thể khác. Nếu bạn gặp phải bất kỳ sự cố tương thích nào hoặc thấy lệnh này phức tạp không cần thiết, hãy thử sử dụng diff để thực hiện chức năng tương tự.
Mẹo hay được tìm thấy bởi @climagic trên Twitter, @osxdaily cũng có trên đó!