こんにちは、今回の記事は、Windowsのコピーコマンドのrobocopyの結果で「更新済み」と出てきたけどこれってどういうこと?という内容になります。
先日robocopyでファイルコピーを実施していたところ、見慣れない「更新済み」という結果がありました。

と思いました。通常であれば「同じ(same)」「新しいファイル(Lonely)」などが多い印象だったので。今回はこの「更新済み」について調べてみました!それでは、いってみましょう。
結論:MFT更新日時が異なるときに「更新済み」
結論から書くと、MFT更新時刻がコピー元とコピー先ファイルで異なった場合に「更新済み」という結果となるようです。
MFT更新日時とは?
聞きなれない時間ですが、MFT更新日時とはWindowsの画面上(プロパティ)などからは確認できない更新日時で、ファイル名やセキュリティ情報を変更すると、MFT更新日時(タイムスタンプ)が更新されるものです。

更新済み(Modified)になる場合、MFT更新日時が更新された時ということになります。MFT更新日時が更新されるタイミング=MFTエントリ情報が更新されたときですので、以下のような情報が更新された時になるようです。
- ファイルデータ
- ファイル名
- 属性
- セキュリティ情報
- 所有者
ということで、実際に試してみました。
「更新済み」となるケース
コピー元とコピー先のファイルを同じ名前に変更
コピー元フォルダとコピー先フォルダのファイル名をそれぞれ手動で同じ名前に変更した後、rovbocopyでコピーすると「更新済み」になりました。
ファイルの内容も、プロパティ上の更新日時も変わりはありませんが、ファイル名をそれぞれに更新した日時が違うため、MFT更新時刻が一致しなかったためです。
セキュリティ情報を変更
右クリックプロパティ、セキュリティタブからアクセス権を編集、アクセス許可するグループとしてeveryoneを追加させてセキュリティ情報を変更してみました。これも、ファイルの内容は変更していませんが、「更新済み」となりました。
所有者情報を変更
ファイルの所有者情報を変更することでも「更新済み」になりました。右クリックプロパティ、セキュリティタブのセキュリティの詳細設定から所有者を変更しました。
そもそもrobocopyの判定条件って?
robocopyのコピー元・コピー先のファイルの差分判定ってどういう条件なのか気になりました。
よくみる情報として、ファイル名はもちろん、ファイルの更新日時・サイズ・属性を使って判定するそうです。※日時には、作成日時・更新日時・アクセス日時が管理されているが、更新日時が対象となるようです。
この他、加えて日時については今回取り上げた通り「MFT更新時刻」という判定条件も存在しています。
気付いていないだけで、他にも判定基準ってあるんでしょうかね。
さいごに
いかがだったでしょうか!同じような疑問を持たれた方の参考になれば幸いです。それでは、また!