• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Linux 使用 diff 指令比較兩個目錄的檔案差異教學與範例

介紹在 Linux 系統中如何使用 diff 指令比較兩個目錄,快速找出有差異的檔案以及內容。

比較目錄差異

Linux 的 diff 指令最常拿來比較不同檔案之間的差異,但它也以用於比對整個目錄下的所有檔案。

# 比較兩個目錄內檔案的差異,列出所有差異處
diff -bur folder1/ folder2/
只在 folder1/ 存在:cfg2.py
diff --color -bur folder1/data.txt folder2/data.txt
--- folder1/data.txt	2020-03-02 08:21:10.960236700 +0800
+++ folder2/data.txt	2020-03-06 16:38:37.551001497 +0800
@@ -1,6 +1,5 @@
 -3 0.064 0.053
 -2 0.120 0.241
--1 0.176 0.398
 0 0.199 0.241
 1 0.176 0.053
 2 0.120 0.004
只在 folder2/ 存在:data.txt~
只在 folder2/ 存在:.data.txt.un~
只在 folder2/ 存在:text.dat

這裡用的 -b 參數是代表忽略空白的差異,-u 是以 unified 格式輸出檔案內容的差異,而 -r 則是以遞迴方式檢查所有子目錄。

只列出差異檔案名稱

如果只需要列出兩個目錄中有差異的檔案名稱,不列出有差異的檔案內容,可以改用 -qr 參數:

# 比較兩個目錄內檔案的差異,只列出有差異的檔案名稱
diff -qr folder1/ folder2/
只在 folder1/ 存在:cfg2.py
檔案 folder1/data.txt 與 folder2/data.txt 不同
只在 folder2/ 存在:data.txt~
只在 folder2/ 存在:.data.txt.un~
只在 folder2/ 存在:text.dat

若差異的檔案名稱數量較多,在輸出時會有點雜亂,可以加上 sort 將結果依據類型排序:

# 排序整理輸出
diff -qr folder1/ folder2/ | sort
只在 folder1/ 存在:cfg2.py
只在 folder2/ 存在:data.txt~
只在 folder2/ 存在:.data.txt.un~
只在 folder2/ 存在:text.dat
檔案 folder1/data.txt 與 folder2/data.txt 不同

參考資料:Stack Overflow

分類:Linux

主要資訊欄

搜尋

近期文章

  • Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤
  • Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例
  • Linux 網路設定 ip 指令用法教學與範例
  • Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例
  • Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例
  • Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例
  • Linux 以 Cryptsetup 與 LUKS 加密磁碟教學與範例
  • Linux 使用 age 簡潔的加密、解密工具使用教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide