這又是一個文件比較命令,熟練掌握會節省你很多工作。還記得comm命令嗎?diff比他更加復雜,好用,不僅能比較文件,還能比較目錄。 當一個文件有多個版本時候,或者更多復雜的文件,目錄比較時,你會期望有一個比comm更有用的命令,diff正是為此而生。
全稱:different file
實例:
文件1: v1.txt
 代碼如下:
hello
  world v1_echo 
  v1_diff
  v1_comm 
 shell is easy!
文件2: v2.txt
 代碼如下:
hello world! 
v2_echo
 v1_diff
 easy shell! 
1.普通比較:
$diff v1.txt v2.txt
 代碼如下:
1,2c1,2 
 < hello world 
 < v1_echo 
 --- 
 > hello world! 
 > v2_echo 
 4c4 
 < v1_comm 
 --- 
 > easy shell!
列出比較的區別,數字為行數,c是compare
2.一體化輸出:
$diff -u v1.txt v2.txt > version.patch
 代碼如下:
-v1_echo 
 +hello world! 
 +v2_echo 
 v1_diff 
 -v1_comm 
 +easy shell! 
 shell is easy!
"+"表示補充的行,"-"表示刪去的行
3. 更新覆蓋v1.txt,注意這里借用了patch
$patch –p1 v1.txt< version.patch
4. 比較v1,v2文件,僅輸出v2的變化
$diff -e v1.txt v2.txt 
 代碼如下:
 4c 
 easy shell! 
 . 
 1,2c 
 hello world! 
 v2_echo 
 .
5.比較目錄
借用書上一段解釋:
-N 將所有確實的文件視為空文件
-a 將所有文件市委文件文本
-u 生成一體化輸出
-r 遍歷目錄下的所有文件
比較兩個目錄下所有文本信息
$diff –Naur directory1 directory2
除非你確定這兩個目錄基本相同,不然不推薦這么用。
6.工作疲勞后,尤其同時做很多事情的時候,會忘了有沒有做過上傳,或者修改某個目錄下的文件。可以這樣:
$diff v1.txt /${dir}
直接比較同名文件,高強度下的工作者相信真有體會。
解讀下—help
太長,截取少部分解讀一下。
 代碼如下:
Mandatory arguments to long options are mandatory for short options too. 
 --normal                                        output a normal diff (the default) 
 -q, --brief                                      report only when files differ             
新聞熱點
疑難解答