在类Unix系统如Linux中, 所有内容都被认为是一个文件 ,除了实际的文件内容外,关于文件(元数据或文件属性,如创建时间,最后修改等)的所有信息都存储在inode和Linux通过它的inode编号来识别每个文件,而不是人类可读的文件名。
另外, Linux stat程序是显示文件或文件系统状态的有用工具。 它显示信息,如inode号码,文件出生时间, 上次数据修改 ,上次访问,上次状态更改等等。 我们将结合这两个程序来在Linux中查找实际的文件创建时间。
在本文中,我们将解释如何使用debugfs和stat程序来查找文件的关键属性之一,以获取Linux文件系统中文件的以下创建/访问信息。
- ctime :显示文件更改时间。
- atime :显示文件访问时间。
- mtime :显示文件修改时间。
- crtime :显示文件创建时间。
在Linux中查找文件创建日期
1.查找文件创建日期和时间“crtime”是使用stat命令针对名为“About-youcl”的文件找到文件的inode。
$ stat About-youcl File: 'About-youcl' Size: 260 Blocks: 8 IO Block: 4096 regular file Device: 80ah/2058d Inode: 14420015 Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 1000/ youcl) Gid: ( 1000/ youcl) Access: 2017-02-23 14:15:20.263337740 +0530 Modify: 2015-10-22 15:08:25.236299000 +0530 Change: 2016-08-01 10:26:36.603280013 +0530 Birth: -
或者,您可以对称为“About-youcl”的文件使用 。
$ ls -i About-youcl 14420015 About-youcl
从上述命令的输出中,文件inode编号是14420015 。 请记下这个独特的inode编号,因为我们将在以下步骤中使用此inode编号。
2.现在我们需要找到我们的文件所在的根文件系统,只需发出以下df -h命令来识别根文件系统。
$ df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 788M 9.7M 779M 2% /run /dev/sda10 324G 277G 31G 91% / tmpfs 3.9G 192M 3.7G 5% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/loop3 87M 87M 0 100% /snap/core/4486 /dev/loop0 87M 87M 0 100% /snap/core/4407 /dev/loop1 82M 82M 0 100% /snap/core/4206 /dev/loop2 181M 181M 0 100% /snap/vlc/190 /dev/loop4 189M 189M 0 100% /snap/vlc/158 cgmfs 100K 0 100K 0% /run/cgmanager/fs tmpfs 788M 40K 788M 1% /run/user/1000
从上面的输出中,根分区的文件系统是/dev/sda10
(记下这个文件系统)。 这在你的系统上会有所不同。
3.接下来,使用debugfs命令查找名为“About-youcl”的文件的创建时间, -R
标志指示debugfs执行inode编号14420015 (本例中为stat)指定的单个外部命令,然后出口。
$ sudo debugfs -R 'stat <14420015>' /dev/sda10 Inode: 14420015 Type: regular Mode: 0777 Flags: 0x80000 Generation: 2130000141 Version: 0x00000000:00000001 User: 1000 Group: 1000 Size: 260 File ACL: 0 Directory ACL: 0 Links: 1 Blockcount: 8 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x579ed684:8fd54a34 -- Mon Aug 1 10:26:36 2016 atime: 0x58aea120:3ec8dc30 -- Thu Feb 23 14:15:20 2017 mtime: 0x5628ae91:38568be0 -- Thu Oct 22 15:08:25 2015 crtime: 0x579ed684:8fd54a34 -- Mon Aug 1 10:26:36 2016 Size of extra inode fields: 32 EXTENTS: (0):57750808 (END)
从上面的输出中可以清楚地看到文件“About-youcl”是由crtime在Mon Aug 1 10:26:36 2016
创建的。 您还将看到文件的“ ctime ”,“ atime ”和“ mtime ”。