• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
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

讀者互動方式

發佈留言 取消回覆

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

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

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

關注本站

  • 電子郵件
  • Facebook

公益

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

Copyright © 2021 · Office Guide