Linux команда diff - команда сравнения текстовых файлов.
Mục lục:
- Cách sử dụng lệnh
diff - Định dạng bình thường
- Định dạng bối cảnh
- Định dạng hợp nhất
- Bỏ qua trường hợp
- Phần kết luận
diff
là một tiện ích dòng lệnh cho phép bạn so sánh hai tệp theo từng dòng. Nó cũng có thể so sánh nội dung của các thư mục.
Lệnh
diff
được sử dụng phổ biến nhất để tạo một bản vá chứa sự khác biệt giữa một hoặc nhiều tệp có thể được áp dụng bằng lệnh
patch
.
Cách sử dụng lệnh
diff
Cú pháp của lệnh
diff
như sau:
diff… FILES
Lệnh
diff
có thể hiển thị đầu ra ở một số định dạng với định dạng thông thường, bối cảnh và thống nhất là những định dạng phổ biến nhất. Đầu ra bao gồm thông tin về những dòng trong tệp phải được thay đổi để chúng trở nên giống hệt nhau. Nếu các tập tin phù hợp, không có đầu ra được sản xuất.
Để lưu đầu ra lệnh vào một tệp, sử dụng toán tử chuyển hướng:
diff file1 file2 > patch
, chúng tôi sẽ sử dụng hai tệp sau để giải thích cách hoạt động của lệnh
diff
:
Ubuntu Arch Linux Debian CentOS Fedora
tập tin2
Kubuntu Ubuntu Debian Arch Linux Centos Fedora
Định dạng bình thường
Ở dạng đơn giản nhất khi lệnh
diff
chạy trên hai tệp văn bản mà không có tùy chọn nào, nó tạo ra một đầu ra ở định dạng bình thường:
diff file1 file2
Đầu ra sẽ trông giống như thế này:
0a1 > Kubuntu 2d2 < Arch Linux 4c4, 5 < CentOS --- > Arch Linux > Centos
Định dạng đầu ra bình thường bao gồm một hoặc nhiều phần mô tả sự khác biệt. Mỗi phần trông như thế này:
change-command < from-file-line… --- > to-file-line…
0a1
,
2d2
và
4c4, 5
là các lệnh thay đổi. Mỗi lệnh thay đổi chứa các mục sau, từ trái sang phải:
- Số dòng hoặc phạm vi của dòng trong tệp đầu tiên. Ký tự thay đổi đặc biệt. Số dòng hoặc phạm vi của dòng trong tệp thứ hai.
Ký tự thay đổi có thể là một trong những điều sau đây:
-
a- Thêm các dòng.c- Thay đổi các dòng.d- Xóa các dòng.
Lệnh thay đổi được theo sau bởi các dòng hoàn chỉnh được loại bỏ (
<
) và thêm vào tệp (
>
).
Hãy giải thích đầu ra:
-
0a1- Thêm dòng1của tệp thứ hai vào đầu tệp1 (sau dòng0).-
> Kubuntu- Dòng từ dòng thứ hai được thêm vào tệp đầu tiên như được mô tả ở trên.
2d2- Xóa dòng2trong tệp đầu tiên.2sau ký hiệudcó nghĩa là nếu dòng không bị xóa, nó sẽ xuất hiện trên dòng2trong tệp thứ hai.-
< Arch Linux- dòng đã bị xóa.
4c4, 5- Thay thế (thay đổi) dòng5trong tệp đầu tiên bằng các dòng4-5từ tệp thứ hai.-
< CentOS- Dòng trong tệp đầu tiên được thay thế.---- Dấu phân cách.> Arch Linuxvà> Centos- Các dòng từ tệp thứ hai thay thế dòng trong tệp đầu tiên.
-
Định dạng bối cảnh
Khi định dạng đầu ra bối cảnh được sử dụng, lệnh
diff
hiển thị một số dòng ngữ cảnh xung quanh các dòng khác nhau giữa các tệp.
Tùy chọn
-c
yêu cầu
diff
tạo ra đầu ra ở định dạng ngữ cảnh:
diff -c file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 6 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 7 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
Đầu ra bắt đầu bằng tên và dấu thời gian nếu các tệp được so sánh và một hoặc nhiều phần mô tả sự khác biệt. Mỗi phần trông như thế này:
*************** *** from-file-line-numbers **** from-file-line… --- to-file-line-numbers ---- to-file-line…
-
from-file-line-numbersvàto-file-line-numbers- Số dòng hoặc phạm vi dòng được phân tách bằng dấu phẩy trong tệp thứ nhất và thứ hai, tương ứng.from-file-linevàto-file-line- Các dòng khác nhau và các dòng của bối cảnh:- Các dòng bắt đầu bằng hai khoảng trắng là các dòng ngữ cảnh, các dòng giống nhau trong cả hai tệp. Các dòng bắt đầu bằng ký hiệu dấu trừ (
-) là các dòng tương ứng với không có gì trong tệp thứ hai. Các dòng bị thiếu trong tệp thứ hai. Các dòng bắt đầu bằng ký hiệu dấu cộng (+) là các dòng tương ứng với không có gì trong tệp đầu tiên. Các dòng bị thiếu trong tệp đầu tiên. Các dòng bắt đầu bằng dấu chấm than (!) Là các dòng được thay đổi giữa hai tệp. Mỗi nhóm dòng bắt đầu với!từ tệp đầu tiên có một kết quả khớp tương ứng trong tệp thứ hai.
- Các dòng bắt đầu bằng hai khoảng trắng là các dòng ngữ cảnh, các dòng giống nhau trong cả hai tệp. Các dòng bắt đầu bằng ký hiệu dấu trừ (
Hãy giải thích các phần quan trọng nhất của đầu ra:
- Trong ví dụ này, chúng tôi chỉ có một phần mô tả sự khác biệt.
*** 1, 6 ****và--- 1, 7 ----cho chúng tôi biết phạm vi của các dòng từ các tệp đầu tiên và thứ hai được bao gồm trong phần này. CácUbuntu,Debian,Fedoravà dòng trống cuối cùng là giống nhau trong cả hai tập tin. Các dòng này đang bắt đầu với double space.Line- Arch Linuxtừ tệp đầu tiên tương ứng với không có gì trong tệp thứ hai. Mặc dù dòng này cũng tồn tại trong tệp thứ hai, nhưng các vị trí khác nhau.ine + Kubfox từ tệp thứ hai tương ứng với không có gì trong tệp đầu tiên.! CentOStừ tập tin và dòng đầu tiên! Arch Linux! Arch Linuxvà! CentOS! CentOStừ tệp thứ hai được thay đổi giữa các tệp.
Theo mặc định, số lượng dòng ngữ cảnh mặc định là ba. Để chỉ định một số khác, hãy sử dụng tùy chọn
-C
(
--contexts
):
diff -C 1 file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 5 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 6 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
Định dạng hợp nhất
Định dạng đầu ra hợp nhất là một phiên bản cải tiến của định dạng ngữ cảnh và tạo ra đầu ra nhỏ hơn.
Sử dụng tùy chọn
-u
để báo cho
diff
để in đầu ra ở định dạng hợp nhất:
diff -u file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian -CentOS +Arch Linux +Centos Fedora
Đầu ra bắt đầu bằng tên và dấu thời gian của tệp và một hoặc nhiều phần mô tả sự khác biệt. Mỗi phần có dạng sau:
*************** @@ from-file-line-numbers to-file-line-numbers @@ line-from-files…
-
@@ from-file-line-numbers to-file-line-numbers @@- Số dòng hoặc phạm vi của các dòng từ các tệp đầu tiên và thứ hai có trong phần này.line-from-files- Các dòng khác nhau và các dòng của bối cảnh:- Các dòng bắt đầu bằng hai khoảng trắng là các dòng ngữ cảnh, các dòng giống nhau trong cả hai tệp. Các dòng bắt đầu bằng ký hiệu dấu trừ (
-) là các dòng được xóa khỏi tệp đầu tiên. Các dòng bắt đầu bằng ký hiệu cộng (+) là các dòng được thêm vào từ tập tin đầu tiên.
- Các dòng bắt đầu bằng hai khoảng trắng là các dòng ngữ cảnh, các dòng giống nhau trong cả hai tệp. Các dòng bắt đầu bằng ký hiệu dấu trừ (
Bỏ qua trường hợp
Như bạn có thể nhận thấy trong các ví dụ trên, lệnh
diff
được phân biệt chữ hoa chữ thường.
Sử dụng tùy chọn
-i
để thông báo
diff
để bỏ qua trường hợp:
diff -ui file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian +Arch Linux CentOS Fedora
Phần kết luận
So sánh các tệp văn bản cho sự khác biệt là một trong những nhiệm vụ phổ biến nhất đối với các quản trị viên hệ thống Linux.
Lệnh
diff
so sánh các tệp theo từng dòng. Để biết thêm thông tin, nhập
man diff
trong thiết bị đầu cuối của bạn.
Vodafone là một trong những nhà khai thác lớn đầu tiên thông báo rằng họ dự định thu hẹp số hệ điều hành được sử dụng điện thoại trên mạng của mình chỉ có hai hoặc ba. Năm 2006, hãng đã chọn Symbian, Linux và Windows Mobile làm ba nền tảng để chạy điện thoại thông minh của mình trong 5 năm tới. Trong khi Android dựa trên Linux, nó không tương thích với các tiêu chuẩn được thiết lập bởi LiMo Foundation, một nhóm tạo và xuất bản các chi tiết kỹ thuật cho phần mềm trung gian cho các thiết bị Linux
[ĐọC thêm: Điện thoại Android tốt nhất cho mỗi ngân sách. Các thành viên khác của OHA bao gồm AKM Semiconductor, ARM, AsusTek Computer, Atheros Communications, Borqs, Ericsson, Garmin International, Huawei Technologies, Omron Software, Softbank Mobile, Teleca và Toshiba.
] Năm người đã bị bắt giữ vì tội phỉ báng những tuần kể từ khi các tài khoản văn bản và video của vụ bê bối lan truyền trên các diễn đàn Web phổ biến của Trung Quốc, các luật sư cho hai trong số những người bị bắt giữ nói hôm thứ Năm. từ một điện thoại di động đầu thứ năm, tuyên bố đã bị cảnh sát đưa đi trong cùng quận Phúc Châu, tỉnh Phúc Kiến, nơi các vụ bắt giữ khác xảy ra. cô con gái 25 tuổi của cô, Yan Xiaoling, và ra lệnh cho cô đi ra gặp. Người phụ nữ tìm thấy con gái mình đã chết trong b
Cảnh sát đã tổ chức một cuộc họp báo vào ngày hôm sau. đăng lại. Một quan chức từ chối bất kỳ bạo lực hay hãm hiếp nào và cho biết Yan đã chết do chảy máu do mang thai thất bại, theo hãng tin Tân Hoa Xã.
Cách sử dụng lệnh ngủ linux để tạm dừng tập lệnh bash
Ngủ là một tiện ích dòng lệnh cho phép bạn tạm dừng quá trình gọi trong một thời gian nhất định. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng lệnh ngủ Linux.







