linux文件之touch命令及文件时间戳

一,在将touch命名前先看看文件关于时间的属性。通过stat命令查看文件如下:

[[email protected] test]# stat f1
 File: `f1‘
 Size: 34              Blocks:8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 72757       Links: 1
Access: (0640/-rw-r-----)  Uid: (   0/    root)   Gid: (   0/    root)
Access: 2015-10-09 01:26:41.658883440 +0800
Modify: 2015-10-08 04:05:15.000000000 +0800
Change: 2015-10-08 20:20:32.811903158 +0800

查看上面信息看到文件三个属性

Acess time:即文件存取时间,或者理解为“最后一次读取时间”,如使用touch、cat、more等命令会修改此数值,但使用ls,stat查看不会改变。注意:若你使用的是虚拟机测试,会发现cat、more等命令时不会实时更新,可以使用实体机测试。

Modify time:修改时间,这里是指文件内容最后一次修改时间。ls命令默认显示就是这个时间。

Change time:改变时间,这里是指文件属性最后修改时间,如修改权限、名称等,一定要与Modify time区分。

二、touch命令:用来修改文件时间戳,或者新建文件。

1,选项参数

-a:--time=atime   Acess time;

-m: --time=mtime   Modify time;

-c:     --no-create不建立任何文档。默认当文件不存在时会创建文件,-c就可以不创建文件。

-r:将文件设置和参考文件的日期时间相同。

-t:使用指定时间日期,而不是直接用系统时间。

三、实例

1,先来touch一个已存在的文件

[[email protected] test]# stat f1
 File: `f1‘
 Size: 34              Blocks:8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 71660       Links: 1
Access: (0640/-rw-r-----)  Uid: (   0/    root)   Gid: (   0/    root)
Access: 2015-10-09 17:28:43.853828458 +0800
Modify: 2015-10-08 04:05:15.000000000 +0800
Change: 2015-10-09 03:16:57.117877086 +0800
[[email protected] test]# touch f1
[[email protected] test]# stat f1 #可以看到所有文件时间都更新为当前系统时间。
 File: `f1‘
 Size: 34              Blocks:8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 71660       Links: 1
Access: (0640/-rw-r-----)  Uid: (   0/    root)   Gid: (   0/    root)
Access: 2015-10-09 18:17:22.936820504 +0800
Modify: 2015-10-09 18:17:22.936820504 +0800
Change: 2015-10-09 18:17:22.936820504 +0800
[[email protected] test]# date
Fri Oct 9 18:17:29 CST 2015

2,通过touch命令创建一个文件

[[email protected] test]# touch -c f3 #-c不创建文件
[[email protected] test]# ls
f1 f2  test
[[email protected] test]# touch f3 #创建文件f3
[[email protected] test]# ls
f1 f2  f3  test
[[email protected] test]# file f3 #查看f3文件类型,显示为空
f3: empty

3,修改文件时间为指定时间

通过man查看touch –t参数:

-t STAMP  use [[CC]YY]MMDDhhmm[.ss] instead of currenttime

[[email protected] test]# touch -t201510081010.10 f3
[[email protected] test]# stat f3 #修改时间为指定时间日期
 File: `f3‘
 Size: 4               Blocks:8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 66037       Links: 1
Access: (0644/-rw-r--r--)  Uid: (   0/    root)   Gid: (   0/    root)
Access: 2015-10-08 10:10:10.000000000 +0800
Modify: 2015-10-08 10:10:10.000000000 +0800
Change: 2015-10-09 18:34:22.535825523 +0800#注意Ctime为当前时间,因为更改文件属性。

4,将文件时间与指定参考文件时间对齐。

[[email protected] test]# touch -r f3 f1 #将f1时间改为与f3相同
[[email protected] test]# stat f1
 File: `f1‘
 Size: 34              Blocks:8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 71660       Links: 1
Access: (0640/-rw-r-----)  Uid: (   0/    root)   Gid: (   0/    root)
Access: 2015-10-08 10:10:10.000000000 +0800
Modify: 2015-10-08 10:10:10.000000000 +0800
Change: 2015-10-09 18:42:47.175819324 +0800#同样Ctime依然当前时间。

总结:touch命令还是比较简单的,主要是理解关于文件的三个时间属性。

时间: 2024-08-06 07:58:26

linux文件之touch命令及文件时间戳的相关文章

Linux基础概念-----touch一个新文件背后发生的事情

一个普通用户在Shell下执行了一条命令,这背后发生了什么事情,是个人的一些总结,如果有不对的地方欢迎搭建指正,谢谢! touch /tmp/test.txt ####################################################################################### tom在Shell中执行这条命令,Shell将命令发给内核,并且判断命令是否存在,通过文件系统上的元数据判断tom是否有权限执行,内核从内存中加载出mkdir的指令

Linux学习之touch命令

Linux学习之touch命令 Linux的touch命令一般用来更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件. 1.命令格式: touch [选项]... 文件... 2.命令参数: -a   或--time=atime或--time=access或--time=use 只更改存取时间. -c   或--no-create 不建立任何文档. -d 使用指定的日期时间,而非现在的时间. -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题. -

linux下touch命令修改文件时间戳

linux的touch命令用来修改文件时间戳,或者新建一个不存在的文件. 上图中,access.modify.change分别是访问时间.修改时间.改变时间,即为文件的时间戳. 1.命令格式: touch [选项]... 文件名... 2.命令参数: -a   或--time=atime或--time=access或--time=use  只更改存取时间. -c   或--no-create  不建立任何文档. -d  使用指定的日期时间,而非现在的时间. -f  此参数将忽略不予处理,仅负责解

Linux学习笔记--rm命令(删除文件或目录)

rm:英文名remove,删除的意思. 1. 命令格式: rm [选项] 文件或目录 2. 常用选项: "rm -f" 强行删除,忽略不存在的文件,不提示确认.(f为force的意思) "rm -i" 进行交互式删除,即删除时会提示确认.(i为interactive的意思) "rm -r" 将参数中列出的全部目录和子目录进行递归删除.(r为recursive的意思) "rm -v" 详细显示删除操作进行的步骤.(v为verbo

linux的wc -l 命令统计文件少一行(一般是windows文件)

先简单介绍 wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出 格式:wc file 命令参数: -c 统计Bytes数(字节数),并显示文件名 -l 统计行数:使用换行符'\n'作为行结束标志,实际是统计换行符个数 -m 统计字符数.这个标志不能与 -c标志一起使用. -w 统计字数.一个字被定义为由空白.跳格或换行字符分隔的字符串. -L 打印最长行的长度. -help 显示帮助信息 --version 显示版本信息 实例: wc test.tx

Linux(CentOS)用split命令分割文件

在 Linux 里,稍加不注意有可能会产生很大体积的日志文件,哪怕几百M,拖下来分析也很浪费时间,这个时候,如果可以把文件切割成 N 个小文件,拿最后一个文件就可以看到最近的日志了.有一些手段,比如用 shell 把日志按每天生成等等,但是不是这里的讨论范围.利辛县档案局 CentOS 里切割大文件的命令如下: view source print? 1 split [OPTION] [INPUT [PREFIX]] 选项如下: -a : 指定后缀长度 -b : 每个文件多少字节 -d : 使用数

linux之touch命令修改文件的时间戳

功能:对已经存在文件的时间进行修改,存取时间(access time).修改时间(modification time).对不存在的文件,进行创建新的空白文件. 语法:touch   [选项]  文件 短选项 长选项 含义 -a --time=atime或--time=access或--time=use 只更改存取时间 -m --time=mtime或--time=modify 只更改变动时间 -d TIME --date=字符串 设定时间与日期,可以使用各种不同的格式 -t STAMP   设定

linux touch命令 创建文件

touch 创建文件,用法,touch test.txt,如果文件存在,则表示修改当前文件时间 [[email protected] ~]# touch /data/text.txt [[email protected] ~]# ls /data/ text.txt [[email protected] ~]# touch text.txt [[email protected] ~]# ls anaconda-ks.cfg text.txt   原文地址:https://www.cnblogs.

linux中使用rm命令将文件移到回收站的方法

今天在终端下,看到我的用户目录下有个-的文件夹(maven生成),相要删除收回点空间,习惯性的用命令 rm -rf ~ ,一回车,猛然想起的时候已经来不及了,世界一下子清静了,想死的心都有了! 没错,-指定的是当前用户的目录,我的用户名是liyd,相当于是执行了rm -rf /home/liyd,所有的文件都删除了.试了linux下的各种文件恢复方法,都不理想,ext4格式,找回来的比率太小了,还要在一大堆乱文件中查找需要的,唉!所幸没什么特别重要的文件,代码都git和svn提交了,损失还能接受