Linux中如何查看文件的创建时间详解
一、简介
Linux的文件能否找到文件的创建时间取决于文件系统类型,在ext4之前的早期文件系统中(ext、ext2、ext3),文件的元数据不会记录文件的创建时间,它只会记录访问时间、修改时间、更改时间(状态更改时间)。典型的文件的基础信息如下所示:
[root@bugwz~]#stattest.file File:‘test.file' Size:2Blocks:8IOBlock:4096regularfile Device:807h/2055dInode:5255117Links:1 Access:(0755/-rwxr-xr-x)Uid:(0/root)Gid:(0/root) Access:2019-12-1219:11:33.175841399+0800 Modify:2019-12-1219:11:37.564970487+0800 Change:2019-12-1219:11:43.079132663+0800 Birth:-
- Access:访问时间,文件数据的最后访问时间(例如:读文件内容);
- Modify:修改时间,文件数据的最后修改时间。(例如:修改文件内容);
- Change:状态更改时间,这个跟Modify时间很容易混淆,文件的属性(权限,大小等)的变更时间;
二、实践
2.1、获取文件的创建时间
获取文件inode号,如下所示,拿到inode号为:5255117;
[root@bugwzdata]#stat/data/test.file File:‘/data/test.file' Size:2Blocks:8IOBlock:4096regularfile Device:807h/2055dInode:5255117Links:1 Access:(0755/-rwxr-xr-x)Uid:(0/root)Gid:(0/root) Access:2019-12-1219:11:33.175841399+0800 Modify:2019-12-1219:11:37.564970487+0800 Change:2019-12-1219:11:43.079132663+0800 Birth:-
查找文件所在的磁盘路径,如下所示,拿到磁盘路径为:/dev/sda7
[root@bugwzdata]#df-h FilesystemSizeUsedAvailUse%Mountedon /dev/sda33.9G2.5G1.2G70%/ devtmpfs16G016G0%/dev tmpfs16G016G0%/dev/shm tmpfs16G1.7G14G11%/run tmpfs16G016G0%/sys/fs/cgroup /dev/sda112G11G787M94%/usr /dev/sda57.8G4.2G3.2G57%/tmp /dev/sda7235G180G44G81%/data /dev/sda67.8G2.1G5.3G29%/var
使用debugfs查看文件的创建时间,发现创建时间crtime为:ThuDec1219:05:232019
[root@bugwzdata1]#debugfs-R'stat<5255117>'/dev/sda7 debugfs1.42.9(28-Dec-2013) Inode:5255117Type:regularMode:0755Flags:0x80000 Generation:758605841Version:0x00000000:00000001 User:0Group:0Size:2 FileACL:0DirectoryACL:0 Links:1Blockcount:8 Fragment:Address:0Number:0Size:0 ctime:0x5df2206f:12dddfdc--ThuDec1219:11:432019 atime:0x5df22065:29ec81dc--ThuDec1219:11:332019 mtime:0x5df22069:86b30fdc--ThuDec1219:11:372019 crtime:0x5df21ef3:d586ca44--ThuDec1219:05:232019 Sizeofextrainodefields:28 EXTENTS: (0):16949121
2.2、集成脚本:
#!/bin/sh [$#-ne1]&&echo"Usage:$0{FILENAME}"&&exit1 INODE=`ls-i$1|awk'{print$1}'` FILENAME=$1 #如果传入参数带/,则获取这个传入参数的目录路径并进入目录 `echo$FILENAME|grep/1>/dev/null`&&{FPWD=${FILENAME%/*};FPWD=${FPWD:=/};cd${FPWD};FPWD=`pwd`;}||FPWD=`pwd` array=(`echo${FPWD}|sed's@/@@g'`) array_length=${#array[@]} for((i=${array_length};i>=0;i--));do unsetarray[$i] SUBPWD=`echo""${array[@]}|sed's@@/@g'` DISK=`df-h|grep${SUBPWD}$|awk'{print$1}'` [[-n$DISK]]&&break done #文件系统非ext4则退出 [["`df-T|grep${DISK}|awk'{print$2}'`"!="ext4"]]&&{echo${DISK}isnotmountontypeext4!Onlyext4filesystemsupport!;exit2;} debugfs-R"stat<${INODE}>"${DISK}
参考地址:https://www.nhooo.com/article/176316.htm
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。