Linux入门:stat+文件名指令

本文详细介绍了在Linux系统中如何使用stat命令查看文件的三种时间属性:访问时间、修改时间和更改时间,并通过实例演示了这些时间的变化情况。此外还介绍了touch命令的不同选项及其对文件时间的影响。

在Linux终端下输入stat file(我的文件名就是file),会出现下列信息:

如上图所示,会出现三个类型的时间:

Access:表示最后一次访问(仅仅是访问而没有改动文件)的时间

Modify:表示最后一次修改文件的时间

Change:表示最后一次对文件属性改变的时间,包括权限,大小等属性

比如使用cat file查看一下文件,它的Access时间就会发生变化

用vim file打开文件对文件进行修改之后可以看到三个时间全都会发生变化:

用chown root file将文件的所有者改为root后,可以看见Change的时间发生了变化而其他两个时间都没有变:

对于touch命令所修改的时间:

touch -a -d:修改Access时间(修改成指定时间)

touch -m -d:修改Modify时间(修改成指定时间

touch -c -d:Access和Modify都修改为指定时间

touch -a:改变Access时间

touch -m:改变Modify时间

touch -c:同时改变Access和Modify时间

使用touch时就改变了文件的属性,因此只要使用touch,Change时间就会改变。

 

 

要显示inode内容,在Linux系统中有多种方式。可以使用`stat`命令,它能查看文件的诸多信息,其中就包含inode号。使用格式为`stat [选项] 文件`,执行该命令后,输出信息里的`Inode`字段即为inode号,同时还会显示文件的其他详细信息,如文件名、大小、权限、链接数、所有者、所属组、访问/修改/变更时间等。示例命令如下: ```bash stat example.txt ``` 此命令会输出类似下面的内容: ``` File: example.txt Size: 1234 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 123456 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ user) Access: 2024-01-01 12:34:56.000000000 +0800 Modify: 2024-01-01 11:22:33.000000000 +0800 Change: 2024-01-01 11:22:33.000000000 +0800 Birth: - ``` 在代码层面,可使用`stat`函数来获取文件信息,该函数在`<sys/stat.h>`头文件中声明。以下是一个简单的C语言示例: ```c #include <stdio.h> #include <sys/stat.h> #include <time.h> int main() { struct stat fileStat; if (stat("example.txt", &fileStat) == -1) { perror("stat"); return 1; } printf("Inode: %lu\n", (unsigned long)fileStat.st_ino); printf("Permissions: %o\n", fileStat.st_mode & 0777); printf("Size: %lu bytes\n", (unsigned long)fileStat.st_size); printf("Links: %lu\n", (unsigned long)fileStat.st_nlink); printf("Owner UID: %u\n", fileStat.st_uid); printf("Group GID: %u\n", fileStat.st_gid); printf("Access time: %s", ctime(&fileStat.st_atime)); printf("Modify time: %s", ctime(&fileStat.st_mtime)); printf("Change time: %s", ctime(&fileStat.st_ctime)); return 0; } ``` 上述代码通过`stat`函数获取文件`example.txt`的信息,并将inode号、权限、大小、链接数、所有者、所属组、访问/修改/变更时间等信息打印输出。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值