Lệnh diff trong linux với các ví dụ dễ hiểu

Lệnh diff trong Linux là công cụ hữu ích để so sánh hai tập tin, giúp bạn dễ dàng tìm ra sự khác biệt giữa chúng. Lệnh diff hiển thị các dòng đã được thêm, xóa hoặc thay đổi, hỗ trợ việc theo dõi và hợp nhất các phiên bản khác nhau. Nó đặc biệt quan trọng trong việc quản lý mã nguồn và kiểm soát phiên bản, giúp quá trình làm việc hiệu quả hơn.

Lệnh diff trong linux là gì?

Lệnh command diff in linux là một công cụ vô cùng hữu ích để so sánh sự khác biệt giữa hai tập tin, hoặc thậm chí giữa hai thư mục. Nó sẽ chỉ ra những dòng nào đã được thêm vào, xóa đi, hoặc thay đổi giữa hai phiên bản, giúp bạn dễ dàng theo dõi các chỉnh sửa. Kết quả của lệnh diff thường được sử dụng để tạo ra các bản vá (patch), cho phép bạn áp dụng những thay đổi từ một tập tin lên một tập tin khác. Điều này đặc biệt quan trọng trong việc quản lý mã nguồn và cộng tác phát triển phần mềm, giúp các lập trình viên dễ dàng chia sẻ và tích hợp các thay đổi của mình. Với command diff in linux, việc tìm ra sự khác biệt giữa các phiên bản trở nên nhanh chóng và hiệu quả hơn bao giờ hết.

Tìm hiểu Mục đích và Cú pháp của Lệnh diff

Trong bước này, bạn sẽ học về mục đích và cú pháp cơ bản của lệnh diff trong Linux.

Lệnh diff là một công cụ mạnh mẽ dùng để so sánh nội dung của hai tệp và hiển thị sự khác biệt.

Đầu tiên, hãy tạo hai tệp văn bản mẫu để thực hành với lệnh diff nhé.

cd ~/project
echo "This is file1.txt" > file1.txt
echo "This is file2.txt" > file2.txt

Bây giờ, hãy sử dụng lệnh diff để so sánh hai tệp mà chúng ta vừa tạo.

diff file1.txt file2.txt

Ví dụ về kết quả:

1c1
< This is file1.txt
---
> This is file2.txt

Kết quả cho thấy dòng đầu tiên (1c1) của hai tệp là khác nhau, bạn có thể thấy rõ điều đó.

Ký hiệu < chỉ ra dòng từ tệp đầu tiên, còn > chỉ ra dòng từ tệp thứ hai.

Cú pháp cơ bản của lệnh diff là như sau, bạn hãy lưu ý nhé.

diff [options] file1 file2

Trong đó, file1file2 là hai tệp mà bạn muốn so sánh với nhau.

Một số tùy chọn phổ biến cho lệnh diff bao gồm các tùy chọn sau đây:

  • -c: Hiển thị sự khác biệt ở định dạng ngữ cảnh, cho thấy các dòng xung quanh thay đổi.
  • -u: Hiển thị sự khác biệt ở định dạng thống nhất, cho thấy các dòng xung quanh thay đổi.
  • -r: So sánh đệ quy các thư mục và nội dung của chúng một cách chi tiết.
  • -w: Bỏ qua sự khác biệt về khoảng trắng giữa các dòng lệnh.

Chúng ta sẽ khám phá các tùy chọn nâng cao hơn của lệnh diff trong bước tiếp theo.

So sánh Hai File Text Sử Dụng Lệnh diff

Trong bước này, bạn sẽ học cách dùng lệnh diff để so sánh nội dung hai file text và hiểu kết quả.

Đầu tiên, hãy tạo hai file text mới có một vài điểm khác biệt như sau:

cd ~/project
echo "This is line 1 in file1.txt" > file1.txt
echo "This is line 1 in file2.txt" > file2.txt
echo "This is line 2 in file1.txt" >> file1.txt
echo "This is line 2 in file2.txt" >> file2.txt

Bây giờ, hãy sử dụng lệnh diff để so sánh hai file vừa tạo:

diff file1.txt file2.txt

Ví dụ về kết quả trả về:

1c1
< This is line 1 in file1.txt
---
> This is line 1 in file2.txt
2c2
< This is line 2 in file1.txt
---
> This is line 2 in file2.txt

Kết quả cho thấy sự khác biệt giữa hai file. Dòng 1c1 chỉ ra dòng đầu tiên trong file1.txt khác với dòng đầu tiên trong file2.txt. Ký hiệu < hiển thị dòng từ file1.txt, còn > hiển thị dòng từ file2.txt.

Tương tự, dòng 2c2 cho biết dòng thứ hai trong file1.txt khác với dòng thứ hai trong file2.txt.

Bạn cũng có thể dùng tùy chọn -c hoặc -u để hiển thị sự khác biệt ở định dạng dễ đọc hơn:

diff -c file1.txt file2.txt

Ví dụ về kết quả trả về:

*** file1.txt	2023-04-24 11:46:27.000000000 +0000
--- file2.txt	2023-04-24 11:46:32.000000000 +0000
***************
*** 1 ****
! This is line 1 in file1.txt
--- 1 ----
! This is line 1 in file2.txt
***************
*** 2 ****
! This is line 2 in file1.txt
--- 2 ----
! This is line 2 in file2.txt

Tùy chọn -c hiển thị sự khác biệt ở định dạng context, cho thấy các dòng xung quanh những thay đổi.

Khám phá các tùy chọn nâng cao của lệnh diff

Trong bước này, bạn sẽ tìm hiểu về các tùy chọn nâng cao của lệnh diff để tăng cường chức năng của nó.

Chúng ta hãy bắt đầu bằng cách tạo một thư mục mới và một vài tệp để làm việc nhé:

cd ~/project
mkdir dir1 dir2
echo "This is file1.txt in dir1" > dir1/file1.txt
echo "This is file2.txt in dir1" > dir1/file2.txt
echo "This is file1.txt in dir2" > dir2/file1.txt
echo "This is file2.txt in dir2" > dir2/file2.txt

Bây giờ, hãy sử dụng tùy chọn -r (recursive) để so sánh nội dung của hai thư mục:

diff -r dir1 dir2

Ví dụ về đầu ra:

Only in dir1: file1.txt
Only in dir1: file2.txt
Only in dir2: file1.txt
Only in dir2: file2.txt
diff dir1/file1.txt dir2/file1.txt
1c1
< This is file1.txt in dir1
---
> This is file1.txt in dir2
diff dir1/file2.txt dir2/file2.txt
1c1
< This is file2.txt in dir1
---
> This is file2.txt in dir2

Tùy chọn -r cho phép diff so sánh đệ quy nội dung của hai thư mục và các tệp của chúng.

Một tùy chọn hữu ích khác là -w, tùy chọn này bỏ qua sự khác biệt về khoảng trắng:

echo "  This is file3.txt in dir1  " > dir1/file3.txt
echo "This is file3.txt in dir2" > dir2/file3.txt
diff -w dir1/file3.txt dir2/file3.txt

Ví dụ về đầu ra:

1c1
< This is file3.txt in dir1
---
> This is file3.txt in dir2

Tùy chọn -w đảm bảo rằng sự khác biệt về khoảng trắng (ví dụ: khoảng trắng đầu/cuối) sẽ bị bỏ qua.

Bạn cũng có thể sử dụng lệnh diff để so sánh nội dung của hai thư mục và chỉ hiển thị các tệp khác nhau:

diff -q dir1 dir2

Ví dụ về đầu ra:

Files dir1/file1.txt and dir2/file1.txt differ
Files dir1/file2.txt and dir2/file2.txt differ

Tùy chọn -q chỉ hiển thị tên tệp khác nhau, mà không hiển thị sự khác biệt thực tế.

Kết luận cho linux diff command

Tóm lại, lệnh linux diff command là một công cụ vô cùng hữu ích để so sánh các tệp tin trong Linux. Nó giúp bạn dễ dàng nhận biết sự khác biệt giữa các phiên bản khác nhau của cùng một tệp. Với khả năng hiển thị chi tiết các dòng thêm, xóa hoặc sửa đổi, bạn có thể nhanh chóng nắm bắt được những thay đổi quan trọng. Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về cách sử dụng linux diff command và có thể áp dụng nó vào công việc hàng ngày. Hãy thử nghiệm với các tùy chọn khác nhau để khai thác tối đa sức mạnh của nó, bạn sẽ thấy nó thực sự tiện lợi đấy! Chúc bạn thành công trong việc quản lý và so sánh các tệp tin của mình một cách hiệu quả.

Last Updated : 14/10/2025