Rsync

如何擺脫 rsync 的 .d..t(時間戳更改)輸出?

  • January 17, 2021

當我將兩個目錄與 rsync 應用程序進行比較時,我可以看到有很多關於時間戳更改的輸出。例如:

$ rsync --dry-run -avh -i --delete --size-only --checksum --stats dir1/ dir2/

...
...
.d..t...... 3com/
.d..t...... RTL8192E/
.d..t...... acenic/
.d..t...... adaptec/
.d..t...... advansys/
.d..t...... amd/
.d..t...... amdgpu/
.d..t...... ar3k/
.d..t...... ar3k/1020201coex/
.d..t...... asihpi/
.d..t...... ath10k/

...
...

我只想在他們的 md5sum 不同時查看任何文件更改。我不想看到任何時間戳更改。我怎樣才能避免這些d..t輸出?

非常感謝。

編輯:

我以為--size-only會暗示--no-times,但事實並非如此。非常感謝@BowlOfRed 的回答。所以最終的工作命令是:

rsync --dry-run -avh --no-times -i --delete --checksum --stats dir1/ dir2/

您正在指定(通過-a標誌)您希望在所有文件/目錄上保留時間戳,因此它報告這些更改將會發生。

要麼不給出-t標誌(通過 進入),要麼在命令行上-a添加標誌。--no-times

rsync現在不會使用時間作為標準來檢查是否需要更新,並且如果唯一的區別是時間戳,它將不會嘗試更新。

這些看起來像目錄時間戳,您可以通過管道輸出來忽略它grep -v '/$'

如果您想絕對精確,請使用更完整的 RE,它僅匹配d..t目錄的序列,然後僅忽略這些行

rsync … | grep -v '^\.d\.\.t\.\.\.\.\.\. .*/$'

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