如何在Linux操作系统查看文件创建时间

如何在Linux中查看文件的创建时间 文件的创建时间是指文件在系统中最初被创建的时间戳。在Linux系统中,我们可以使用一些命令和工具来查看文件的创建时间。命令,我们可以方便地获取文件的创建时间信息。根据实际情况选择适合的方法来查看文件的创建时间。命令是Linux中一个常用的文件列表命令,可以用来列出指定目录中的文件和文件夹。命令用于显示文件的详细状态信息,包括文件的访问权限、大小、修改时间等。首先,我们需要获取文件所在分区的设备名称和文件的inode号。选项,我们可以获取文件的详细信息,包括创建时间。命令,我们可以获取文件的创建时间。 阅读详情
在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。但如果文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能。


  与文件相关的几个时间:


  1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more命令。ls、stat命令都不会修改文件的访问时间。


  2、修改时间,对文件内容修改一次,这个时间就会更新。比如:vi后保存文件。ls -l列出的时间就是这个时间。


  3、状态改变时间。通过chmod命令更改一次文件属性,这个时间就会更新。查看文件的详细的状态、准确的修改时间等,可以通过stat命令 文件名。


[root@bogon ~]# stat anaconda-ks.cfg 
  File: `anaconda-ks.cfg'
  Size: 2337            Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 98491       Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-06-08 11:31:39.111600945 -0700
Modify: 2012-06-08 11:31:39.121498870 -0700
Change: 2012-06-08 11:31:39.687042856 -0700


  说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个目录所有文件的状态。




stat函数讲解


表头文件:    #include <sys/stat.h>
             #include <unistd.h>
定义函数:    int stat(const char *file_name, struct stat *buf);
函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中
返回值:      执行成功则返回0,失败返回-1,错误代码存于errno


错误代码:
    ENOENT         参数file_name指定的文件不存在
    ENOTDIR        路径中的目录存在但却非真正的目录
    ELOOP          欲打开的文件有过多符号连接问题,上限为16符号连接
    EFAULT         参数buf为无效指针,指向无法存在的内存空间
    EACCESS        存取文件时被拒绝
    ENOMEM         核心内存不足
    ENAMETOOLONG   参数file_name的路径名称太长




#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>


int main() {
    struct stat buf;
    stat("/etc/hosts", &buf);
    printf("/etc/hosts file size = %d\n", buf.st_size);
}




-----------------------------------------------------
struct stat {
    dev_t         st_dev;       //文件的设备编号
    ino_t         st_ino;       //节点
    mode_t        st_mode;      //文件的类型和存取的权限
    nlink_t       st_nlink;     //连到该文件的硬连接数目,刚建立的文件值为1
    uid_t         st_uid;       //用户ID
    gid_t         st_gid;       //组ID
    dev_t         st_rdev;      //(设备类型)若此文件为设备文件,则为其设备编号
    off_t         st_size;      //文件字节数(文件大小)
    unsigned long st_blksize;   //块大小(文件系统的I/O 缓冲区大小)
    unsigned long st_blocks;    //块数
    time_t        st_atime;     //最后一次访问时间
    time_t        st_mtime;     //最后一次修改时间
    time_t        st_ctime;     //最后一次改变时间(指属性)
};


先前所描述的st_mode 则定义了下列数种情况:
    S_IFMT   0170000    文件类型的位遮罩
    S_IFSOCK 0140000    scoket
    S_IFLNK 0120000     符号连接
    S_IFREG 0100000     一般文件
    S_IFBLK 0060000     区块装置
    S_IFDIR 0040000     目录
    S_IFCHR 0020000     字符装置
    S_IFIFO 0010000     先进先出


    S_ISUID 04000     文件的(set user-id on execution)位
    S_ISGID 02000     文件的(set group-id on execution)位
    S_ISVTX 01000     文件的sticky位


    S_IRUSR(S_IREAD) 00400     文件所有者具可读取权限
    S_IWUSR(S_IWRITE)00200     文件所有者具可写入权限
    S_IXUSR(S_IEXEC) 00100     文件所有者具可执行权限


    S_IRGRP 00040             用户组具可读取权限
    S_IWGRP 00020             用户组具可写入权限
    S_IXGRP 00010             用户组具可执行权限


    S_IROTH 00004             其他用户具可读取权限
    S_IWOTH 00002             其他用户具可写入权限
    S_IXOTH 00001             其他用户具可执行权限


    上述的文件类型在POSIX中定义了检查这些类型的宏定义:
    S_ISLNK (st_mode)    判断是否为符号连接
    S_ISREG (st_mode)    是否为一般文件
    S_ISDIR (st_mode)    是否为目录
    S_ISCHR (st_mode)    是否为字符装置文件
    S_ISBLK (s3e)        是否为先进先出
    S_ISSOCK (st_mode)   是否为socket




    若一目录具有sticky位(S_ISVTX),则表示在此目录下的文件只能被该文件所有者、此目录所有者或root来删除或改名。


-----------------------------------------------------
struct statfs {
    long    f_type;          //文件系统类型
    long    f_bsize;         //块大小
    long    f_blocks;        //块多少
    long    f_bfree;         //空闲的块
    long    f_bavail;        //可用块
    long    f_files;         //总文件节点
    long    f_ffree;         //空闲文件节点
    fsid_t f_fsid;           //文件系统id
    long    f_namelen;       //文件名的最大长度
    long    f_spare[6];      //spare for later
};


stat、fstat和lstat函数(UNIX)




#include<sys/types.h>
#include<sys/stat.h>
int stat(const char *restrict pathname, struct stat *restrict buf);
提供文件名字,获取文件对应属性。感觉一般是文件没有打开的时候这样操作。
int fstat(int filedes, struct stat *buf);
通过文件描述符获取文件对应的属性。文件打开后这样操作
int lstat(const char *restrict pathname, struct stat *restrict buf);
连接文件


三个函数的返回:若成功则为0,若出错则为-1
给定一个pathname,stat函数返回一个与此命名文件有关的信息结构,fstat函数获得已在描述符filedes上打开的文件的有关信息。lstat函数类似于stat,但是当命名的文件是一个符号连接时,lstat返回该符号连接的有关信息,而不是由该符号连接引用的文件的信息。


第二个参数是个指针,它指向一个我们应提供的结构。这些函数填写由buf指向的结构。该结构的实际定义可能随实现而有所不同,但其基本形式是:


struct stat{
mode_t st_mode;   /*file tpye &mode (permissions)*/
ino_t st_ino;     /*i=node number (serial number)*/
dev_t st_rdev;   /*device number for special files*/
nlink_t st_nlink; /*number of links*/
uid_t    st_uid; /*user id of owner*/
gid_t    st_gid; /*group ID of owner*/
off_t   st_size; /*size in bytes for regular files*/
time_t st_atime; /*time of last access*/
time_t st_mtime; /*time of last modification*/
time_t st_ctime; /*time of last file status change*/
long st_blksize; /*best I/O block size */
long st_blocks; /*number of 512-byte blocks allocated*/
};
   注意,除最后两个以外,其他各成员都为基本系统数据类型。我们将说明此结构的每个成员以了解文件属性。
  
使用stat函数最多的可能是ls-l命令,用其可以获得有关一个文件的所有信息。
1 函数都是获取文件(普通文件,目录,管道,socket,字符,块()的属性。
函数原型
#include <sys/stat.h>


int stat(const char *restrict pathname, struct stat *restrict buf);
提供文件名字,获取文件对应属性。
int fstat(int filedes, struct stat *buf);
通过文件描述符获取文件对应的属性。
int lstat(const char *restrict pathname, struct stat *restrict buf);
连接文件描述命,获取文件属性。
2 文件对应的属性
struct stat {
        mode_t     st_mode;       //文件对应的模式,文件,目录等
        ino_t      st_ino;       //inode节点号
        dev_t      st_dev;        //设备号码
        dev_t      st_rdev;       //特殊设备号码
        nlink_t    st_nlink;      //文件的连接数
        uid_t      st_uid;        //文件所有者
        gid_t      st_gid;        //文件所有者对应的组
        off_t      st_size;       //普通文件,对应的文件字节数
        time_t     st_atime;      //文件最后被访问的时间
        time_t     st_mtime;      //文件内容最后被修改的时间
        time_t     st_ctime;      //文件状态改变时间
        blksize_t st_blksize;    //文件内容对应的块大小
        blkcnt_t   st_blocks;     //伟建内容对应的块数量
      };


可以通过上面提供的函数,返回一个结构体,保存着文件的信息。
【vLLM-性能洞察】基于Ascend Profiler的端到端推理瓶颈定位与优化实践 本文详细介绍了如何利用Ascend Profiler对vLLM-Ascend大模型推理服务进行端到端的性能瓶颈定位与优化。通过实战案例,阐述了从数据采集、可视化分析到诊断低效算子、内存管理、计算通信重叠及框架调度等常见瓶颈的全过程,为基于昇腾NPU的AI推理性能调优提供了系统性的方法论和实用工具指南。 阅读详情

相关推荐

STM32F429+LAN8720实战:5分钟搞定LWIP裸机网络通讯(附完整代码)

本文详细介绍了如何在STM32F429微控制器上,结合LAN8720 PHY芯片,在裸机环境下快速部署和配置LWIP协议栈以实现网络通讯。内容涵盖硬件RMII接口连接、STM32CubeMX关键配置、代码移植与定制,以及常见问题排查方法,帮助工程师在资源受限的嵌入式系统中高效实现稳定的以太网功能。

2y3u4i5o6p的博客 962

linux系统下如何获取文件的创建时间

linux下文件怎么找创建时间

pc的博客 6523

利用 Docker Distribution 搭建私有的 Docker Registry

1、拓扑

weixin_44983653的博客 1067

linux 如何查询文件创建时间

linux 查询文件创建时间

G.Hypo的博客 1万+

超螺旋滑模控制(STA)

超螺旋滑模控制又称超扭滑模控制,可以说是二阶系统中最好用的滑模控制方法。

Lyajpunov的博客 1万+

200、从反激到LLC:工程师的成长之路

文章摘要: 本文以工程师视角探讨从反激式到LLC电源设计的思维转变。通过48V通信电源故障案例,揭示LLC谐振电容ESR温度特性引发的隐患,强调LLC需精确计算与测试。对比反激与LLC的核心差异:反激需控制寄生参数(如漏感尖峰、电容ESR),而LLC的关键在于频率响应和死区时间优化。作者提出三大思维转变:从匝比计算转向增益曲线分析,从时域波形观察转向频域频谱诊断,从元件更换转向参数调整。最后给出实战建议,包括建立故障库、关注元件参数细节及示波器调试技巧,指出工程师需从"控制"思维升级为"谐振"思维,实现技术

Jack010169的博客 322

Linux查看文件创建时间

ext4开始才有创建时间的记录 上面命令的“.”是文件当前目录,也可以是一个完整路径 查看文件索引结点inode 查看创建时间

Melon的博客 7940

【SMPL简介】SMPL: A Skinned Multi-Person Linear Model【源码复现】

SMPL是一种3D人体建模方法.在数字人或者人物角色三维重建领域有着广泛应用支持人体的各种形状及动作可以简单理解为通过训练获取的人物模型SMPL 输入是:姿态shape vectorβ\betaβ+ 影响动作Pose的参数θ\thetaθ输出是: 各种变化后vertex顶点的数据作者:Loper, Matthew and Mahmood, Naureen and Romero, Javier and Pons-Moll, Gerard and Black, Michael J.

zik的博客 3369

Linux操作系统介绍

Windows与Linux的关系当前主流的操作系统包括:Windows, Android, iOS, Unix(始主)/LinuxWindows:傻瓜式操作,易用Linux:专业性强,操作复杂,学习难度大,但免费、开源、性能好、可移植性好Android:基于Linux的移动操作系统基本命令:更新源文件。

W030321的博客 622

Lammps纳米压痕接触面积—Matlab接触面积计算(两种方法)

Lammps纳米压痕接触面积计算

Rockyoung 5448

Allegro如何进行四层板板层设计

板层的设计

weixin_42499230的博客 3189

Linux系统文件系统及文件基础篇

学习Linux,重难点在于掌握不同类别的文件系统及其作用。通过对Linux系统的安装,我们首先来了解下Linux系统里各个目录文件夹下的大致功能:主要的目录树的有/、/root、/home、/usr、/bin等目录。下面是一个典型的linux目录结构如下: / 根目录 /bin 存放必要的命令 /boot 存放内核以及启动所需的文件 ...

u014389734的博客 143

基于AUTOSAR的汽车电子项目--电动助力转向系统

基于AUTOSAR的汽车电子项目开发通常涵盖广泛的领域,例如动力系统控制、车身电子、信息娱乐系统、高级驾驶辅助系统(ADAS)等。以下是一个简化的示例项目,展示了如何在AUTOSAR环境下开发一个电动助力转向系统(Electric Power Steering, EPS)的控制软件

MHD0815的博客 2129

linux运维命令总结,Linux运维命令总结(-)

一、建立目录/datalinuxMake directory 建立目录的命令mkdir filename,例子以下:运维建立单个目录linux运维[root@oldboy ~]# mkdir /dataspa递归建立多个目录blog[root@oldboy ~]# mkdir /data/oldboy/a/b排序二、显示/data目录的信息,例子以下:递归ls 显示文件和目录内容ip-l long...

weixin_29531897的博客 130

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Linux一些基操

tar -zcvf test.tar.gz 1.txt 2.txt 3.txt 将123文件 压缩到test.tar.gz文件 使用gzip模式。压缩: tar -cvf test.tar 1.txt 2.txt 3.txt 将123文件 压缩到test.tar文件。tar -xvf test.tar -C /home/500w 解压文件test.tar 到指定目录。tar -zxvf test.tar.gz -C /home/500w 以gzip模式解压文件。

weixin_56541352的博客 123

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux 使用笔记

如果文件已经创建,touch通常只更新时间。rm删除的内容通常不会进入回收站。第一个字符:文件类型。

weixin_53390280的博客 238

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

linux 显示文件修改 创建时间等信息

stat aa.txt # stat * 显示当前目录所以文件信息

WoBenZiYou的专栏 484

linux怎么查看php文件,Linux 如何查看文件的创建时间

在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。但如果文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;如果文件创建后,没有被读取过,那么访问时间=创建时间,这个基本不太可能。呵呵。与文件相关的几个时间:1。访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用...

weixin_36410141的博客 392

Linux常用命令——文件操作命令

文章目录Linux的文件操作命令1、touch命令2、stat命令3、cat命令4、more命令5、less命令6、head命令7、tail命令8、ln命令 Linux的文件操作命令 1、touch命令 文件命名规则: (1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的 (2)文件名不能超过255个字符 (3)区分大小写file File FILE fIle 严格区分大小写 (4)目录也是文件,在同一路径下,两个文件不能同名 创建多个普通文件: 方法1:touch 文件名1 文件名2

Hala 619

linux技巧(一)

# 查看文件创建时间 1.sudo debugfs -R 'stat /path/to/file.txt' /dev/sda1 /path/to/file.txt是你的文件绝对路径。 /dev/sda1是你的磁盘分区

abel004的专栏 303

Linux常用命令之新手上路 (一)

个人说明:对于习惯了Windows平台的Linux初学者来说,刚接触Linux时是比较懵逼的,为了帮助和我一样的小白更加快速的入门,我打算养成学习笔记的习惯,将自己在学习Linux和Java的所学所得都记录在博客上。 新手入门8个常见的任务和常用的命令     1、查看当前所在目录,清楚自己在哪个目录下工作;         pwd 显示当前所在目录              2、查看当前目录的...

Liu_is_Gao的博客 424

linux 文件类型

linux 的文件类型主要有以下几种,在用ls -l显示 -:普通文件 l:连接文件 c:字符设备 d:目录 b:块文件 p:管道文件 s:socket文件  除了用ls -l可以查看文件类型外在shell编程中还常用stat 命令来方便的取出文件各种属性值, 1. 所有属性 [root@hadoop ~]# stat go4.txt   File: `go4.t

韩王-信 712
上一篇: linux system 执行shell脚本传参数的问题。。。
下一篇: 内存对齐的初步讲解
夏天__
博客等级 码龄15年 42粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值