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: Blocks: IO Block: regular empty file
Device: fd00h/64768d Inode: 18742283 Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::45.776000000 +
Modify: -- ::45.776000000 +
Change: -- ::45.776000000 +
Birth: -

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

[root@vnode33 ~]# echo  > a
[root@vnode33 ~]# stat a
File: 'a'
Size: 4 Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::45.776000000 +
Modify: -- ::24.531000000 +
Change: -- ::24.531000000 +
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: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::45.776000000 +
Modify: -- ::24.531000000 +
Change: -- ::24.531000000 +
Birth: -
[root@vnode33 ~]# touch a
[root@vnode33 ~]# stat a
File: 'a'
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::17.929000000 +
Modify: -- ::17.929000000 +
Change: -- ::17.929000000 +
Birth: -

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

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

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

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

[root@vnode33 ~]# stat a
File: 'a'
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::35.989000000 +
Modify: -- ::17.929000000 +
Change: -- ::35.989000000 +
Birth: -
[root@vnode33 ~]# touch -m a
[root@vnode33 ~]# stat a
File: 'a'
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::35.989000000 +
Modify: 2018-11-30 09:57:45.098000000 +0800
Change: 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  a
[root@vnode33 ~]# stat a
File: 'a'
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: 2010-10-10 10:10:00.000000000 +0800
Modify: 2010-10-10 10:10:00.000000000 +0800
Change: 2018-11-30 10:00:37.039000000 +0800
Birth: -

linux命令系列 stat & touch的更多相关文章

  1. (5)ps详解 (每周一个linux命令系列)

    (5)ps详解 (每周一个linux命令系列) linux命令 ps详解 引言:今天的命令是用来看进程状态的ps命令 ps 我们先看man ps ps - report a snapshot of t ...

  2. (4)top详解 (每周一个linux命令系列)

    (4)top详解 (每周一个linux命令系列) linux命令 top详解 引言:今天的命令是用来看cpu信息的top top 我们先看man top top - display Linux pro ...

  3. (3)lscpu详解 (每周一个linux命令系列)

    (3)lscpu详解 (每周一个linux命令系列) linux命令 lscpu详解 引言:今天的命令是用来看cpu信息的lscpu lscpu 我们先看man lscpu display infor ...

  4. (2)free详解 (每周一个linux命令系列)

    (2)free详解 (每周一个linux命令系列) linux命令 free详解 引言:今天的命令是用来看内存的free free 换一个套路,我们先看man free中对free的描述: Displ ...

  5. Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

    Linux命令系列之top--里面藏着很多鲜为人知的宝藏知识 简介 top命令是我们经常用来查看系统信息的一个指令,它提供了一个动态的而且是实时的借口帮助我们去查看系统执行时的进程.线程和系统参数的信 ...

  6. Linux命令系列之ls——原来最简单的ls这么复杂

    Linux命令系列之ls--原来最简单的ls这么复杂 ls命令应该是我们最常用的命令之一了,但是我们可能容易忽略那些看起来最简单的东西. 简介 ls命令的使用格式如下 ls [选项] [具体的文件] ...

  7. 全网最详细的Linux命令系列-touch命令

    linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 命令格式: touch [选项]... 文件... 命令参数: -a 或--tim ...

  8. Linux命令详解-touch

    linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 1.命令格式: touch [选项]... 文件... 2.命令参数: -a 或- ...

  9. linux命令系列-ln(软硬链接)

    linux命令 ln命令可以生成软链接和硬链接,也可叫做符号链接和实体链接. 有兴趣深入理解的可以查阅相关文档,一般的读者只需记住以下几点即可: .不管是软链接还是硬链接都不会额外增加磁盘空间(虽然实 ...

随机推荐

  1. svn 查找指定文件和后缀变化

    有时候需要批量查找一些包含特定关键字文件名和后缀的文件,先把所有变化文件通多svn diff命令 输出到一个文件,然后使用如下命令: grep -i 'data*.xml' change.txt |a ...

  2. java基础二 java的跨平台特性

    一:java跨平台的特性: 1.生成不平台无关系的字节码. 2.通过和平台有关的jvm即java虚拟机来执行字节码.jvm不跨平台. 图示: 疑问:1.为什么我们不直接写字节码? 因为字节码只有jvm ...

  3. 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

    题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...

  4. 笔记:iOS随机数与随机数据集

    //0 到 N - 1 之间的随机整数 NSUInteger r = arc4random_uniform(N); //1 到 N 之间的随机整数 NSUInteger r = arc4random_ ...

  5. 一、用Delphi10.3 创建一条JSON数据

    一.用Delphi10.3构造一个JSON数据,非常之容易,代码如下: uses System.JSON; procedure TForm1.Button1Click(Sender: TObject) ...

  6. Spring boot ---- java.lang.NoClassDefFoundError: javax/servlet/ServletContext

    Spring boot ---- java.lang.NoClassDefFoundError: javax/servlet/ServletContext   场景描述 项目中用到spring boo ...

  7. WPF实现MDI窗体的方法

    原文:WPF实现MDI窗体的方法 第一:新建一个类(Class) Win32Native.cs 代码如下: using System;  using System.Collections.Generi ...

  8. SQL Server 小数类型(float 和 decimal)

    在SQL Server中,实际上小数数值只有两种数据类型:float 和 decimal,分别是近似数值和精确数值.其他小数类型,都可以使用float和decimal来替代,例如,双精度(double ...

  9. 浅谈MVC Razor基本语法

    首先说下MVC,mvc已经不用ViewState来保留网页的状态,所以大部分依赖ViewState的功能都将无法使用, 比如gridview的分页与排序,page trace等利用viewstate记 ...

  10. elk6.3 centos集群搭建 head插件安装

    版本elk均为6.3+centos7.0 准备工作 官网下载elk6.3的linux环境的压缩包,sftp上传 下载对应的head插件sftp上传到指定目录 tar.gz文件解压 tar -zxvf ...