自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux 文件對(duì)比黑科技!diff 命令從入門到精通實(shí)戰(zhàn)

系統(tǒng) Linux
今天,我想向大家介紹Linux中非常實(shí)用的一個(gè)小幫手——diff工具。不知道大家有沒有嘗試過使用它呢?它是否也讓你感到驚喜和贊嘆了呢?

在寧?kù)o美好的夜晚,當(dāng)你面對(duì)著兩份既相似又各具特色的配置文件時(shí),是否也曾憧憬過,要是有一種工具能夠像聰明的小偵探一樣,迅速而準(zhǔn)確地揭示它們之間的差異,那該有多棒?。繘]錯(cuò),今天,我想向大家介紹Linux中非常實(shí)用的一個(gè)小幫手——diff工具。不知道大家有沒有嘗試過使用它呢?它是否也讓你感到驚喜和贊嘆了呢?

一、什么是diff?

簡(jiǎn)單來說,diff 是 Linux/Unix 系統(tǒng)中用于逐行對(duì)比兩個(gè)文件或整個(gè)目錄內(nèi)容差異的強(qiáng)大命令。它能夠精準(zhǔn)指出哪些行被添加、刪除或修改,并提供多種格式和選項(xiàng),幫助你以最直觀的方式發(fā)現(xiàn)變化。

二、基本語法

diff [選項(xiàng)] 文件1 文件2
  • 文件1:舊版配置/代碼
  • 文件2:新版配置/代碼

1. 單文件對(duì)比實(shí)戰(zhàn)

舉個(gè)小栗子:

創(chuàng)建兩個(gè)測(cè)試文件:

echo -e "apple\nbanana\ncherry\ndate" > fruits1.txt
echo -e "apple\nblueberry\ncherry\nfig" > fruits2.txt

執(zhí)行基本對(duì)比:

diff fruits1.txt fruits2.txt

瞬間告訴你哪行不一樣,是不是很酷?如下所示:

2c2
< banana
---
> blueberry
4c4
< date
---
> fig

輸出解讀指南:

  • 2c2 表示第2行被替換(change)
  • < 標(biāo)記左側(cè)文件內(nèi)容
  • 標(biāo)記右側(cè)文件內(nèi)容
  • d 表示刪除(delete)
  • a 表示添加(append)

2. 目錄對(duì)比技巧

diff -r dir1/ dir2/

實(shí)用參數(shù)組合:

diff -rq dirA/ dirB/  # 僅顯示差異文件名
diff -rw dirX/ dirY/  # 忽略空格差異

三、輸出格式

diff 支持多種輸出格式,常見的有普通格式(默認(rèn))、統(tǒng)一格式(unified)、上下文格式(context)和并排格式(side-by-side)。

1. 普通格式

普通格式是 diff 的默認(rèn)輸出,使用 < 表示文件1中存在但文件2中刪除的行,使用 > 表示文件2中新增加的行。

root@wtrpro:~# diff  fruits1.txt fruits2.txt
2c2
< banana
---
> blueberry
4c4
< date
---
> fig

該格式直觀但不易讀,對(duì)于大規(guī)模差異不夠友好 。

2. 統(tǒng)一格式

統(tǒng)一格式在上下文格式基礎(chǔ)上進(jìn)行了簡(jiǎn)化,將冗余的上下文行合并,只保留變更前后附近的若干行。使用-u或-U行數(shù)選項(xiàng)開啟。

root@wtrpro:~# diff -u fruits1.txt fruits2.txt
--- fruits1.txt 2025-05-09 22:48:56.924862820 +0800
+++ fruits2.txt 2025-05-09 22:48:56.924862820 +0800
@@ -1,4 +1,4 @@
 apple
-banana
+blueberry
 cherry
-date
+fig

該格式是開源社區(qū)最常用的補(bǔ)丁格式,便于生成和應(yīng)用補(bǔ)丁。

3. 上下文格式

上下文格式使用-c選項(xiàng),其輸出比普通格式更易讀,保留完整的上下下文信息:

root@wtrpro:~# diff  -c fruits1.txt fruits2.txt
*** fruits1.txt 2025-05-09 22:48:56.924862820 +0800
--- fruits2.txt 2025-05-09 22:48:56.924862820 +0800
***************
*** 1,4 ****
  apple
! banana
  cherry
! date
--- 1,4 ----
  apple
! blueberry
  cherry
! fig

該格式在一些大型補(bǔ)丁中仍有使用價(jià)值。

4. 并排格式

并排格式將兩個(gè)文件內(nèi)容以兩列形式并排顯示,使用 -y 選項(xiàng):

root@wtrpro:~# diff  -y  fruits1.txt fruits2.txt
apple                                                           apple
banana                                                        | blueberry
cherry                                                          cherry
date                                                          | fig

該格式直觀且易于人工查看與對(duì)比。

四、常用選項(xiàng)

  • -u 或 --unified[=行數(shù)]:顯示統(tǒng)一格式,默認(rèn)上下文為3行。
  • -c 或 --context[=行數(shù)]:顯示上下文格式。
  • -y 或 --side-by-side:并排顯示差異。
  • -w 或 --ignore-all-space:忽略所有空白字符。
  • -b 或 --ignore-space-change:忽略空白變化(多空格視為單空格)。
  • -B 或 --ignore-blank-lines:忽略空行變化。
  • -I PATTERN:忽略匹配給定正則模式的行差異。

五、結(jié)語

從此告別盲目排查,把繁瑣的差異一網(wǎng)打盡。不管是配置變更、腳本調(diào)優(yōu),還是代碼審查,diff 都能成為你最得力的“偵探伙伴”。

責(zé)任編輯:趙寧寧 來源: 攻城獅成長(zhǎng)日記
相關(guān)推薦

2025-04-21 04:00:00

2012-02-29 00:49:06

Linux學(xué)習(xí)

2023-05-09 08:34:51

PythonWith語句

2010-02-06 15:31:18

ibmdwAndroid

2009-07-22 14:55:16

ibmdwAndroid

2017-05-09 08:48:44

機(jī)器學(xué)習(xí)

2016-12-08 22:39:40

Android

2022-06-10 08:17:52

HashMap鏈表紅黑樹

2025-02-24 10:07:10

2010-11-08 10:20:18

2024-02-26 08:52:20

Python傳遞函數(shù)參數(shù)參數(shù)傳遞類型

2022-09-02 15:11:18

開發(fā)工具

2010-03-18 16:38:39

Linux命令

2023-10-13 08:23:05

2009-07-03 18:49:00

網(wǎng)吧綜合布線

2011-10-26 20:47:36

ssh 安全

2009-03-19 13:36:53

SSH安全通道遠(yuǎn)程

2017-01-09 09:34:03

Docker容器傳統(tǒng)虛擬機(jī)

2024-06-07 08:51:50

OpenPyXLPythonExcel文件

2025-03-21 14:31:14

NumPyPython數(shù)組
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)