Filesystems

為什麼更改文件名不會更改其校驗和?

  • January 5, 2021

據我所知,即使更改一點文件,也會更改整個校驗和結果,但是當我更改文件名時,這不會影響其校驗和(我嘗試過 SHA-1、SHA-256 和 MD5)。

為什麼?文件名不是文件數據的一部分?它取決於文件​​系統嗎?

文件名是目錄條目中的字元串,許多其他元數據(文件類型、權限、所有權、時間戳等)儲存在 inode 中。因此,文件名不是構成文件實際數據的一部分。事實上,單個文件在文件系統中可能有任意數量的名稱(硬連結),並且還可以通過任意數量的任意命名的符號連結進行訪問。

md5由於文件名不是文件數據的一部分,因此當您使用或md5sum或某些類似實用程序計算 MD5 校驗和時,它不會自動包含在內。

因此,更改文件的名稱(或所有權或時間戳或權限等)或通過其其他名稱或符號連結之一訪問它(如果有的話)不會對文件的 MD5 校驗和產生任何影響。

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