2014-03-28 46 views
2

我懷疑幾年前有人不小心將文件夾結構從/home/data複製到/home/something/data。此後/home/data已經有很多更新和更改。 什麼是最簡單的方法來檢查/home/something/data獨特 (通過名稱和位置)的任何文件,以幫助我確認是否有從/home/data複製?找到不同路徑所特有的文件BASH

回答

2

使用diff -r dir1 dir2,您可以遞歸掃描目錄結構和內容的差異。其他標誌可以根據自己的喜好調整輸出和行爲。

2

使用rsync以空運行模式查看是否將/home/something/data複製到/home/data實際上會複製任何數據。

rsync -r --dry-run /home/something/data /home/data 

如果/home/something/data下的文件是相同的/home/data下的文件,它不會被複制,並且rsync --dry-run不會報告。

1

您可能會也可能不會喜歡這種方法,但掃描所有文件可能需要一段時間,但我一般都會有很好的感覺。

轉到每個目錄結構的頂部和運行find,並得到各的MD5校驗和每個文件 - 因爲我在OSX

cd /home/data 
find . -type f -exec md5 -r {} + > /tmp/a 

cd /home/something/data 
find . -type f -exec md5 -r {} + > /tmp/b 

當他們完成你的交換機可能會有所不同,運行通過sortuniq -u輸出文件告訴大家,只有一次(他們都應該出現,如果兩次的文件是相同的兩個目錄)出現的臺詞:

sort < /tmp/[ab] | uniq -u 
+0

這是不必要的複雜,但哦,這麼聰明! +1!我認爲用'xargs'更可讀 – slezica