Diff

比較目錄但不比較文件的內容

  • April 7, 2021

diff -r

我可以完成這項任務,但是需要很長時間,因為diff檢查文件的內容。

我想要確定兩個文件在大小、上次修改等方面相同的東西。但沒有逐位檢查文件(例如影片需要很長時間)。

還有其他方法嗎?

預設情況下,rsync 僅比較文件元數據。這意味著時間戳、大小和屬性。其中。但不是文件的內容。

rsync -n -a -i --delete source/ target/

解釋:

  • -n不要實際複製或刪除 <– 這很重要!!1
  • -a比較文件的所有元數據,如時間戳和屬性
  • -i每個文件列印一行資訊
  • --delete還報告不在源中的文件

注意:使用斜杠附加目錄名稱很重要。這是一個 rsync 的事情。

你可以像這樣縮短一個字母選項

rsync -nai --delete source/ target/

如果您還想查看為相同文件列印的行,請提供-i兩次

rsync -naii --delete source/ target/

範例輸出:

*deleting   removedfile   (file in target but not in source)
.d..t...... ./            (directory with different timestamp)
>f.st...... modifiedfile  (file with different size and timestamp)
>f+++++++++ newfile       (file in source but not in target)
.f          samefile      (file that has same metadata. only with -ii)

請記住,rsync 只比較元數據。這意味著如果文件內容更改但元數據保持不變,則 rsync 將報告該文件相同。這是不太可能發生的情況。所以要麼相信當元數據相同時數據是相同的,或者你必須逐位比較文件數據。

獎勵:有關進度資訊,請參見此處:估計 rsync 的剩餘時間或完成工作?

引用自:https://unix.stackexchange.com/questions/59336