NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
14/09/2024
Lượt xem

Lệnh diff trong Linux là gì? 11 ví dụ về cách sử dụng lệnh diff trong Linux

14/09/2024
16 phút đọc
Lượt xem

Đánh giá

Lệnh diff trong Linux là một công cụ không thể thiếu cho các lập trình viên và nhà quản trị hệ thống. Với diff, bạn có thể nhanh chóng tìm ra những thay đổi, lỗi sai và đảm bảo tính nhất quán của dữ liệu, thông qua một vài dòng lệnh đơn giản. Trong bài viết này, Vietnix sẽ giới thiệu đến bạn tổng quan về lệnh diff trong Linux, cũng như 11 ví dụ cụ thể để bạn hiểu rõ hơn về cách sử dụng lệnh này.

Lệnh diff trong Linux là gì?

Lệnh diff trong Linux là lệnh dùng để so sánh hai file văn bản và hiển thị các điểm khác nhau. Lệnh này giúp bạn dễ dàng phát hiện ra các lỗi sai trong quá trình chỉnh sửa hoặc sao chép file, đồng thời trong các hệ thống quản lý phiên bản như Git, lệnh diff còn được dùng để hiển thị sự khác biệt giữa các commit, giữa index so với commit cuối,…

Lệnh diff trong Linux là gì
Lệnh diff trong Linux là gì

Lệnh diff được xem là một lệnh hữu ích đến nhiều người chuyên sử dụng hệ thống hệ điều hành Linux, phổ biến như Ubuntu. Bạn có thể lưu ngay lại lệnh để sử dụng cùng các câu lệnh trong Linux cơ bản để nâng cao kỹ năng thực hiện lệnh:

Cú pháp cơ bản của lệnh diff

Cú pháp của lệnh diff trong Linux bao gồm một hoặc nhiều tùy chọn, sau đó là tên của các file mà bạn muốn kiểm tra. Cú pháp như sau:

diff [OPTION]... FILES

Lưu ý: Trong cú pháp trên, tùy chọn được đặt trong dấu ngoặc vuông và theo sau là dấu 3 chấm có nghĩa là bạn có thể sử dụng nhiều tùy chọn cùng lúc.

9 tùy chọn phổ biến nhất trong lệnh diff

Lệnh diff trong Linux cung cấp đa dạng các tùy chọn để sửa đổi cách phân biệt các file. Bạn sẽ tìm thấy những tùy chọn phù hợp nhất theo nhu cầu của mình bằng cách dùng lệnh man để xem trang hướng dẫn:

man diff
Tùy chọnMô tả
-BBỏ qua các dòng trống
-cHiển thị ngữ cảnh đã sao chép
-iBỏ qua sự khác biệt về chữ hoa và chữ thường
-rSo sánh đệ quy các thư mục con
-sBáo cáo nếu các tập tin giống hệt nhau
-qBáo cáo nếu các tập tin khác nhau
-uHiển thị ngữ cảnh thống nhất
-wBỏ qua tất cả các khoảng trắng
-yHiển thị kết quả trong hai cột

Lưu ý: Các tùy chọn trong Linux CLI (giao diện dòng lệnh) có phân biệt rõ chữ hoa chữ thường, vì vậy bạn cần chú ý tính chính xác khi sử dụng chúng.

5 ký hiệu chuyên dụng trong lệnh diff

Lệnh diff trong Linux sử dụng một số ký hiệu để biểu thị sự khác biệt giữa 2 file. Ngoài ra, chúng còn cung cấp thêm thông tin về bản chất của sự khác biệt đó, để người dùng có thể hiểu được cụ thể những dòng nào đã bị thêm vào, xóa bỏ hoặc thay đổi nội dung, từ đó dễ dàng theo dõi và sửa đổi hơn. Dưới đây là một số ký hiệu được sử dụng phổ biến trong lệnh diff, bạn có thể xem thêm thông tin trên trang hướng dẫn bằng cú pháp:

man diff

5 ký hiệu thường dùng trong lệnh diff như sau:

Ký hiệuMô tả
a/+Biểu thị việc bổ sung nội dung
c/!Biểu thị sự thay đổi nội dung
d/-Biểu thị việc xóa nội dung
>Các dòng từ file 1
<Các dòng từ file 2

Ví dụ 1: So sánh sự khác nhau và cách làm file thứ nhất giống file thứ hai

Bạn có thể dùng lệnh diff trong Linux để hiển thị sự khác biệt giữa các file thông qua các ký hiệu. Trong ví dụ này, Vietnix sẽ phân biệt sự khác nhau giữa 2 file văn bản file1.txtfile2.txt, các bước cụ thể như sau:

Bước 1: Bạn hãy mở Ubuntu Terminal.

Bước 2: Để giúp bạn thấy rõ nội dung của 2 file này, tôi sử dụng lệnh cat ( có thể bỏ qua bước này để trực tiếp đến bước 3):

Dùng lệnh cat để xem nội dung của file
Dùng lệnh cat để xem nội dung của file

Bước 3: Nhập lệnh sau vào command prompt và nhấn Enter:

diff file1.txt file2.txt
Lệnh diff chỉ ra sự khác biệt được tìm thấy trong mỗi dòng, sự khác biệt được áp dụng cho file1.txt
Lệnh diff chỉ ra sự khác biệt được tìm thấy trong mỗi dòng, sự khác biệt được áp dụng cho file1.txt

Chú thích:

  • 0a1:  Sau dòng 0 (tại đầu của tập tin), thêm dòng thứ 1 từ tập tin thứ hai, đó là Dhaka.
  • 2c3: Thay đổi dòng thứ 2 Cumilla thành dòng thứ 3 Comilla của file thứ hai.
  • 4,5c5,6: Thay đổi dòng thứ 4,5 Chattogram, Kushtia thành dòng thứ 5,6 của file thứ hai. Các dòng từ file thứ hai là ChittagongKhulna.

Ví dụ 2: Hiển thị sự khác nhau giữa các file và cách chỉnh sửa

Bạn có thể hiển thị sự khác biệt giữa các file trong ngữ cảnh mặc định của từng file bằng tùy chọn -c của lệnh diff. Kết quả sẽ hiển thị những điểm khác nhau giữa file thứ nhất và file thứ hai bằng các ký hiệu, từ đó giúp bạn dễ dàng sửa đổi theo mong muốn. Trong ví dụ này, Vietnix sẽ so sánh hai file văn bản file1.txtfile2.txt trong ngữ cảnh sao chép và giải thích các ký hiệu kết quả. Để thực hiện, bạn có thể làm theo các bước sau:

Bước 1: Bạn mở Ubuntu Terminal.

Bước 2: Nhập lệnh sau vào command prompt và nhấn Enter:

diff -c file1.txt file2.txt
Dùng lệnh cat để xem rõ nội dung của 2 file
Dùng lệnh cat để xem rõ nội dung của 2 file
Kết quả lệnh diff hiển thị hai ký hiệu diễn tả sự khác biệt ở mỗi dòng, các ký hiệu áp dụng cho file file1.txt
Kết quả lệnh diff hiển thị hai ký hiệu diễn tả sự khác biệt ở mỗi dòng, các ký hiệu áp dụng cho file file1.txt

Chú thích: Các ký hiệu trong ví dụ có ý nghĩa như sau:

  • +: Thêm Dhaka vào dòng tương ứng của file đầu tiên.
  • !: Thay đổi các dòng từ file đầu tiên thành các dòng được chỉ định của file thứ hai.

Ví dụ 3: Hiển thị sự khác nhau giữa các file và cách chỉnh sửa trong từng ngữ cảnh thống nhất

Sử dụng lệnh diff trong Linux với tùy chọn -u giúp bạn thấy được sự khác biệt giữa các file trong một ngữ cảnh thống nhất. Lệnh sẽ hiển thị cho bạn những điểm khác nhau thông qua các ký hiệu, đồng thời hướng dẫn cách để làm cho các file giống nhau. Bạn có thể thực hiện theo các bước sau:

Bước 1: Đầu tiên, bạn hãy mở Ubuntu Terminal.

Bước 2: Nhập lệnh sau vào command prompt và nhấn Enter.

diff -u file1.txt file2.txt

Tương tự như trên, bạn dùng lệnh cat để xem trước nội dung của 2 file:

Dùng lệnh cat xem nội dung của 2 file
Dùng lệnh cat xem nội dung của 2 file

Kết quả sau khi dùng lệnh diff như sau:

Lệnh diff hiển thị sự khác nhau giữa 2 file bằng ký hiệu, áp dụng cho file file1.txt
Lệnh diff hiển thị sự khác nhau giữa 2 file bằng ký hiệu, áp dụng cho file file1.txt

Chú thích:

  • + : Thêm các dòng được chỉ định vào file đầu tiên.
  • : Xóa các dòng được gán khỏi file đầu tiên.

Ví dụ 4: Mang lại sự khác nhau giữa các file cạnh nhau bằng lệnh diff trong Linux

Sử dụng lệnh diff trong Linux với tùy chọn -y, bạn có thể thấy được sự khác biệt giữa các file trong những cột cạnh nhau. Lệnh này sẽ gán các ký hiệu cho nội dung của file thứ hai để chỉ ra sự khác biệt. Các ký hiệu này cũng đại diện cho cách để làm cho các file trở nên giống nhau. Cách thực hiện thư sau:

Bước 1: Mở Ubuntu Terminal.

Bước 2: Bạn nhập lệnh sau vào command prompt và chọn Enter:

diff -y file1.txt file2.txt
Hiển thị nội dung của các file theo các cột cạnh nhau, biểu thị sự khác biệt bằng ký hiệu > và l
Hiển thị nội dung của các file theo các cột cạnh nhau, biểu thị sự khác biệt bằng ký hiệu > và l

Ví dụ 5: Sử dụng lệnh diff trong Linux để so sánh 2 file văn bản

Bạn có thể đối chiếu xem 2 file có khác nhau không bằng tùy chọn -q trong lệnh diff. Giả sử, bạn muốn kiểm tra xem hai file văn bản file3.txtfile4.txt có khác nhau không, hãy thực hiện như sau: Mở Ubuntu Terminal > Nhập lệnh như bên dưới và nhấn Enter:

diff -q file3.txt file4.txt
Kết quả hiển thị hai file này là khác nhau
Kết quả hiển thị hai file này là khác nhau

Ví dụ 6: Kiểm tra sự giống nhau của 2 file bằng lệnh diff

Bạn có thể kiểm tra xem nội dung trong 2 file có hoàn toàn giống nhau không bằng tùy chọn -s. Trong ví dụ này, Vietnix sẽ kiểm tra xem hai file văn bản file5.txt  và file6.txt bằng lệnh như sau:

diff -s file5.txt file6.txt
Xem nội của file bằng lệnh cat, kết quả hiển thị 2 tệp hoàn toàn giống nhau
Xem nội của file bằng lệnh cat, kết quả hiển thị 2 tệp hoàn toàn giống nhau

Ví dụ 7: So sánh file không phân biệt chữ hoa chữ thường

Tùy chọn -i trong lệnh diff có thể giúp bạn so sánh nội dung trong 2 file mà không phân biệt chữ hoa chữ thường. Ví dụ, bạn cần so sánh hai file văn bản file3.txtfile4.txt theo cách không phân biệt chữ hoa chữ thường, hãy thực hiện như sau: Mở Ubuntu Terminal > nhập lệnh bên dưới vào command prompt > nhấn Enter:

diff -i -y file3.txt file4.txt

Vietnix hiển thị kết quả cạnh nhau bằng tùy chọn -y. Lệnh này bỏ qua các trường hợp và chỉ phân biệt hai dòng cuối không có trong tệp đầu tiên file3.txt.

Kết quả so sánh 2 file không phân biệt chữ hoa và chữ thường bằng lệnh diff
Kết quả so sánh 2 file không phân biệt chữ hoa và chữ thường bằng lệnh diff

Ví dụ 8: Bỏ qua khoảng trắng phân biệt khoảng cách các file

Tùy chọn -w của lệnh diff trong Linux sẽ giúp bạn so sánh nội dung trong 2 file bỏ qua khoảng trắng. Để so sánh 2 file văn bản file7.txtfile8.txt bỏ qua khoảng trắng trên một dòng, bạn làm theo các bước như sau: Mở Ubuntu Terminal > nhập lệnh bên dưới vào command prompt > nhấn Enter:

diff -w -s file7.txt file8.txt

Cụ thể, Vietnix dùng lệnh cat để hiển thị nội dung của từng file, sau đó kiểm tra xem các file có giống nhau hoàn toàn không bằng cách bỏ qua khoảng trắng với tùy chọn -s. Kết quả như sau:

Dùng lệnh diff phân biệt các file bằng cách bỏ qua khoảng trắng
Dùng lệnh diff phân biệt các file bằng cách bỏ qua khoảng trắng

Ví dụ 9: Bỏ qua các dòng trống khi phân biệt các file

Trong trường hợp này, tùy chọn -B của lệnh diff sẽ giúp bạn phân biệt các file bằng cách bỏ qua các dòng trống. Giả sử, bạn muốn so sánh 2 file văn bản file9.txtfile10.txt, hãy thực hiện các bước sau: Mở Ubuntu Terminal > nhập lệnh bên dưới vào command prompt > nhấn Enter:

diff -B -s file9.txt file10.txt
Hiển thị nội dung file bằng lệnh cat, kiểm tra các file bỏ qua các dòng trống bằng tùy chọn -s
Hiển thị nội dung file bằng lệnh cat, kiểm tra các file bỏ qua các dòng trống bằng tùy chọn -s

Ví dụ 10: So sánh hai thư mục bằng lệnh diff trong Linux

Lệnh diff trong Linux giúp bạn thấy được sự khác biệt giữa nội dung trong hai thư mục bằng cách in ra các file và thư mục duy nhất trong mỗi thư mục. Giả sử, bạn cần phân biệt 2 thư mục văn bản DesktopDocuments, hãy thực hiện như sau: Mở Ubuntu Terminal > nhập lệnh bên dưới vào command prompt > nhấn Enter:

diff Desktop Documents
Hiển thị nội dung các thư mục bằng lệnh Is, sau đó hiển thị cách dung khác nhau trong mỗi thư mục
Hiển thị nội dung các thư mục bằng lệnh Is, sau đó hiển thị cách dung khác nhau trong mỗi thư mục

Ví dụ 11: Chuyển hướng output của lệnh diff 

Bạn có thể ghi kết quả so sánh vào một file mong muốn bằng tính năng Redirection (>) của lệnh diff. Ví dụ, bạn cần chuyển hướng kết quả so sánh giữa hai file văn bản DesktopDocuments vào một file tên là diff.txt, bạn thực hiện như sau: Mở Ubuntu Terminal > nhập lệnh bên dưới vào command prompt > nhấn Enter:

diff Desktop Documents > diff.txt

Cụ thể, bạn hiển thị nội dung của các thư mục bằng lệnh ls, sau đó chuyển hướng output trong file diff.txt. Bạn có thể thấy kết quả được chuyển hướng đến tệp diff.txt bằng lệnh cat.

Kết quả chuyển hướng output của lệnh diff trong Linux
Kết quả chuyển hướng output của lệnh diff trong Linux

Câu hỏi thường gặp

Có thể sử dụng diff để so sánh hai tệp có mã hóa khác nhau không?

Có thể. Nhưng sẽ gặp một số vấn đề cản trở, do đó người dùng cần đảm bảo mã hóa và công cụ so sánh nâng cao.

Có cách nào để theo dõi sự thay đổi kích thước của một thư mục theo thời gian không?

Có thể. Bạn có thể theo dõi bằng một số cách như sử dụng script, công cụ giám sát, công cụ quản lý phiên bản, công cụ chuyên dụng

Lời kết

Bài viết trên đã mang đến thông tin tổng quan về lệnh diff trong Linux bao gồm cú pháp, tùy chọn, ký hiệu cũng như các ví dụ cụ thể về cách sử dụng của lệnh này. Nếu bạn có bất kỳ thắc mắc nào hãy để lại bình luận ngay bên dưới, Vietnix sẽ giải đáp nhanh nhất. Cảm ơn bạn đã theo dõi bài viết!

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG