博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux命令系列 stat & touch
阅读量:4607 次
发布时间:2019-06-09

本文共 4537 字,大约阅读时间需要 15 分钟。

1. stat - display file or file system status

stat命令主要用于显示文件或文件系统的状态,详细信息

事实上,stat命令显示的是文件的I节点信息。Linux文件系统以块为单位存储信息,为了找到某个文件所在存储空间的位置,用I节点对每个文件进行索引

所谓的I节点,是文件系统管理的一个数据结构,是一个64字节长的表,包含了描述文件所必要的全部信息,其中包含了文件的大小,类型,存取权限,文件的所有者

[root@vnode33 ~]# touch a[root@vnode33 ~]# stat a  File: 'a'  Size: 0               Blocks: 0          IO Block: 4096   regular empty fileDevice: fd00h/64768d    Inode: 18742283    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2018-11-30 09:05:45.776000000 +0800Modify: 2018-11-30 09:05:45.776000000 +0800Change: 2018-11-30 09:05:45.776000000 +0800 Birth: -

为文件a添加一些内容再次使用stat:

[root@vnode33 ~]# echo 123 > a[root@vnode33 ~]# stat a  File: 'a'  Size: 4               Blocks: 8          IO Block: 4096   regular fileDevice: fd00h/64768d    Inode: 18742283    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2018-11-30 09:05:45.776000000 +0800Modify: 2018-11-30 09:08:24.531000000 +0800Change: 2018-11-30 09:08:24.531000000 +0800 Birth: -

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

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

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

stat命令常用的选项:

-L, --dereference  # 显示符号链接              follow links   -f, --file-system  # 不显示文件本身的信息,显示文件所在文件系统的信息              display file system status instead of file status-t, --terse  # 简洁模式,只显示摘要信息              print the information in terse form

 

2. touch - change file timestamps

我们可能知道在linux下运行touch命令可以创建一个空文件,其实你要知道touch命令的主要功能并不是为了创建一个空文件哦。

什么是touch命令?

linux系统下每个文件都附有时间戳(timestamp),这个时间戳包括访问时间和修改时间。而touch命令主要就是用来修改文件的访问时间和修改时间。

最简单的使用touch命令。只需要键入touch filename:

[root@vnode33 ~]# stat a  File: 'a'  Size: 4               Blocks: 8          IO Block: 4096   regular fileDevice: fd00h/64768d    Inode: 18742283    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2018-11-30 09:05:45.776000000 +0800Modify: 2018-11-30 09:08:24.531000000 +0800Change: 2018-11-30 09:08:24.531000000 +0800 Birth: -[root@vnode33 ~]# touch a [root@vnode33 ~]# stat a  File: 'a'  Size: 4               Blocks: 8          IO Block: 4096   regular fileDevice: fd00h/64768d    Inode: 18742283    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2018-11-30 09:53:17.929000000 +0800Modify: 2018-11-30 09:53:17.929000000 +0800Change: 2018-11-30 09:53:17.929000000 +0800 Birth: -

对文件a使用touch命令之后,三个时间戳都修改了

如果我们要只改变访问时间,我们需要使用-a选项:

[root@vnode33 ~]# stat a  File: 'a'  Size: 4               Blocks: 8          IO Block: 4096   regular fileDevice: fd00h/64768d    Inode: 18742283    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2018-11-30 09:53:17.929000000 +0800Modify: 2018-11-30 09:53:17.929000000 +0800Change: 2018-11-30 09:53:17.929000000 +0800 Birth: -[root@vnode33 ~]# touch -a  a[root@vnode33 ~]# stat a  File: 'a'  Size: 4               Blocks: 8          IO Block: 4096   regular fileDevice: fd00h/64768d    Inode: 18742283    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2018-11-30 09:55:35.989000000 +0800Modify: 2018-11-30 09:53:17.929000000 +0800Change: 2018-11-30 09:55:35.989000000 +0800 Birth: -

 

如果我们只希望修改“Modify”时间戳,可以使用-m选项:

[root@vnode33 ~]# stat a  File: 'a'  Size: 4               Blocks: 8          IO Block: 4096   regular fileDevice: fd00h/64768d    Inode: 18742283    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2018-11-30 09:55:35.989000000 +0800Modify: 2018-11-30 09:53:17.929000000 +0800Change: 2018-11-30 09:55:35.989000000 +0800 Birth: -[root@vnode33 ~]# touch -m a[root@vnode33 ~]# stat a  File: 'a'  Size: 4               Blocks: 8          IO Block: 4096   regular fileDevice: fd00h/64768d    Inode: 18742283    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2018-11-30 09:55:35.989000000 +0800Modify: 2018-11-30 09:57:45.098000000 +0800Change: 2018-11-30 09:57:45.098000000 +0800 Birth: -

 

使用-t选项改为自定义时间戳:

-t STAMP              use [[CC]YY]MMDDhhmm[.ss] instead of current time
[root@vnode33 ~]# touch -t 201010101010 a[root@vnode33 ~]# stat a  File: 'a'  Size: 4               Blocks: 8          IO Block: 4096   regular fileDevice: fd00h/64768d    Inode: 18742283    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Access: 2010-10-10 10:10:00.000000000 +0800Modify: 2010-10-10 10:10:00.000000000 +0800Change: 2018-11-30 10:00:37.039000000 +0800 Birth: -

 

转载于:https://www.cnblogs.com/z-joshua/p/10042681.html

你可能感兴趣的文章
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
构建Docker Compose服务堆栈
查看>>
浮点数内存如何存储的
查看>>
JsonCpp 的使用
查看>>
问题账户需求分析
查看>>
hp 服务器通过串口重定向功能的使用
查看>>
此博客不再发表对自己私事的看法
查看>>
导致Asp.Net站点重启的10个原因
查看>>
【PMP】Head First PMP 学习笔记 第一章 引言
查看>>
抓住云机遇编排工作 搞定复杂IT工作流
查看>>
MYSQL的longtext字段能放多少数据?
查看>>
MTK 平台上如何给 camera 添加一种 preview size
查看>>
云计算最大难处
查看>>
mysql定时备份自动上传
查看>>
17岁时少年决定把海洋洗干净,现在21岁的他做到了
查看>>
《写给大忙人看的java se 8》笔记
查看>>
倒计时:计算时间差
查看>>
Linux/windows P2V VMWare ESXi
查看>>
Windows XP倒计时到底意味着什么?
查看>>
运维工程师在干什么学些什么?【致菜鸟】
查看>>