• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
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

讀者互動

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Primary Sidebar

搜尋

分類

Android Apple C/C++ Excel Linux OneNote PHP PowerPoint PowerShell Python R Windows Word 免費工具 創客 網站架設 線上工具 資料庫 遊戲 雜七雜八

近期文章

  • Python 使用 openpyxl 模組讀取、寫入 Excel 檔案教學與範例
  • Python 使用 humanize 模組將數字轉為容易閱讀格式教學與範例
  • iOS 捷徑教學:充電時朗讀電量提示聲
  • 舊健保卡網路申請補發新卡教學
  • Linux 設定 Swap 記憶體交換空間優先值教學與範例
  • ITK 以 LabelStatisticsImageFilter 套用遮罩影像計算統計量教學與範例
  • iCloud 匯入 Google 聯絡人教學
  • CSS 檔案最小化與壓縮處理教學與範例

推薦網站

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

關注本站

  • 電子郵件
  • Facebook

Copyright © 2020 · Office Guide