我在根目录中列出了最后修改的文件,并发现了一些关于某些日期的有趣内容,所以我想知道其背后的原因。我知道你可以轻松修改文件中的“最后修改”日期,但是,我想了解为什么我从 Brave Snap 应用程序中找到了这些文件,其日期我什至没有打开计算机:
...
/snap/brave/172/opt/brave.com/brave/product_logo_64.png
/snap/brave/172/usr/share/mime/x-content/video-vcd.xml
/snap/brave/172/usr/share/mime/x-content/win32-software.xml
/snap/brave/172/usr/share/mime/x-epoc/x-sisx-app.xml
...
基本上,整个 Brave App(顺便说一句,我甚至不记得下载过)文件夹中的文件的最后修改日期是我电脑完全关闭的日期。这可能是什么原因造成的,背后的原因又是什么?
答案1
文件的“修改日期”只是信息元数据。它可以被简单地改变,例如:
touch item
ls -l item
-rw-r--r-- 1 roaima roaima 0 Aug 8 17:27 item
touch -t 2012040445 item # 2020 Dec 4, 04:45
ls -l item
-rw-r--r-- 1 roaima roaima 0 Dec 4 2020 item
touch -t 2303011933 item # 2023 Mar 1, 19:33
-rw-r--r-- 1 roaima roaima 0 Mar 1 2023 item
但请注意,每当您更改mtime
元数据时,ctime
(inode 更改时间)都会更新,因此不可能在仔细检查中隐藏故意更改(2022-08-08 17:29:35
与最后一个touch
命令完全对应):
stat item
File: item
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 4980781 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ roaima) Gid: ( 1000/ roaima)
Access: 2023-03-01 19:33:00.000000000 +0000
Modify: 2023-03-01 19:33:00.000000000 +0000
Change: 2022-08-08 17:29:35.080989340 +0100
Birth: -
在您的情况下,mtime
元数据存储在 snap 存档中,并与文件名和内容一起恢复。
请参阅man touch
和man stat
了解更多详细信息,以及如何更改文件的“更改”日期?
答案2
正如您已经描述的,修改日期只是文件所有者可以更改的一段元数据。
在本例中,snap 应用了打包该勇敢应用程序的人的文件日期。这本质上与解压 tar 存档时发生的情况相同!
解包程序应用存档中保存的原始文件日期。这里的语义是文件与应用程序打包者的计算机上的文件完全相同,因此时间戳就像他将勇敢的快照放在一起时一样。不是您的计算机解压快照存档的时间。
答案3
为什么 Brave 应用程序文件的日期显示您的计算机未开机的时间?
很可能是因为您没有下载各个文件。相反,您下载了一个软件包或包含它们的单个存档文件。当您运行命令来安装包(或解压存档)时,该命令会读取各个文件的原始时间戳并进行设置。在处理打包或归档在一起的文件时,这种情况很常见。