rsyncアプリケーションを使用して2つのディレクトリを比較すると、タイムスタンプ変更の出力がたくさんあることがわかります。たとえば、
$ 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/
答え1
-a
すべてのファイル/ディレクトリでタイムスタンプを保存するようにフラグを指定すると、その変更が発生したことが報告されます。
フラグを指定しないか-t
(via経由で渡される-a
)--no-times
、コマンドラインに追加します。
rsync
これで、時間は更新が必要かどうかを判断するための基準として使用されなくなり、唯一の違いがタイムスタンプの場合、更新は試行されません。
答え2
これはディレクトリタイムスタンプのように見えます。出力をパイピングして無視できますgrep -v '/$'
。
完全に正確にするには、d..t
ディレクトリの順序と一致するより完全なREを使用してその行を無視してください。
rsync … | grep -v '^\.d\.\.t\.\.\.\.\.\. .*/$'
答え3
許可された答えの代わりに、-aの代わりに-r --size-onlyを使用します(-rlptgoDに拡張)。
タイムスタンプの違いを防ぐため、「t」(rlptgoD)をスキップしてください。他のものが必要ないと仮定した場合は、-aの代わりに-rを使用してください(lpgoD)。
そのうち:l(小さいL)はシンボリックリンク、pは権限、gはグループ、oは所有者、Dは--devices--specialsと同じです。
あなたの質問はタイムスタンプの違いを避けるべきであり、あなたが提供した例にはチェックサムが含まれていますが、チェックサムを実行する必要はないとします(時間がかかります)。たとえば、次のようになります。
rsync -rhinv --size-only --progress --delete --stats
あなたの例には-ahivがあるので、彼らが何をしているのかを知っているとします。 -n は --dry-run の略語です。
トピックから抜け出す:以前は--statsを使用したことがありません。私はこれを試しましたが、rsync出力に約12行の要約が追加されました。知っておくだけ。長い出力リストが期待される場合は、個人的に--statsを使い続けます。そうでなければそうではありません。