linux touch命令: 修改文件时间属性

本文详细介绍了Linux touch命令的使用方法,包括如何修改文件的访问时间、修改时间,以及创建不存在的文件。通过执行范例,展示了touch命令在不同场景下的应用,并解释了文件时间属性的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux touch命令: 修改文件时间属性

介绍:
touch命令用来修改文件的访问时间、修改时间。如果没有指定时间,则将文件时间属性改为当前时间。当指定文件不存在,则touch命令变为创建该文件。

语法:

touch [-acm] [-d STRING-time] [-r reference-file] [-t [[CC]YY]MMDDhhmm[.ss]] 

选项介绍:
    -a: 只修改访问时间;
    -c: 如果指定文件不存在,则不创建文件;
    -d STRING-time: 用字符串格式的时间来指定时间属性的修改值;
    -m: 只修改指定文件的修改时间;
    -r refernce-file: 将指定文件的时间属性改为与reference-file时间属性相同的值;
    -t [[CC]YY]MMDDhhmm[.ss]: 用[[CC]YY]MMDDhhmm[.ss]这种时间格式来指定时间属性的修改值;

执行范例:
 

 
01$ ls #查看当前空的目录
02$
03$ touch text #指定文件不存在,创建文件text
04$ stat text # stat命令可能查看文件的时间属性。
05  File: `text'
06  Size: 0           Blocks: 8          IO Block: 4096   regular empty file
07Device: 831h/2097d  Inode: 211271681   Links: 1
08Access: (0644/-rw-r--r--)  Uid: (  514/    xxxx)   Gid: (  100/   users)
09Access: 2010-03-01 22:03:30.000000000 +0800
10Modify: 2010-03-01 22:03:30.000000000 +0800
11Change: 2010-03-01 22:03:30.000000000 +0800
12$ cat text # 读文件
13$ stat text # 发现文件的访问时间(Access)改变
14  File: `text'
15  Size: 0           Blocks: 8          IO Block: 4096   regular empty file
16Device: 831h/2097d  Inode: 211271681   Links: 1
17Access: (0644/-rw-r--r--)  Uid: (  514/    xxxx)   Gid: (  100/   users)
18Access: 2010-03-01 22:04:08.000000000 +0800
19Modify: 2010-03-01 22:03:30.000000000 +0800
20Change: 2010-03-01 22:03:30.000000000 +0800
21$ echo "hello world" > text # 相当于写文件
22$ stat text # 发现文件的修改时间(Modify)改变
23  File: `text'
24  Size: 12          Blocks: 16         IO Block: 4096   regular file
25Device: 831h/2097d  Inode: 211271681   Links: 1
26Access: (0644/-rw-r--r--)  Uid: (  514/    xxxx)   Gid: (  100/   users)
27Access: 2010-03-01 22:04:08.000000000 +0800
28Modify: 2010-03-01 22:04:58.000000000 +0800
29Change: 2010-03-01 22:04:58.000000000 +0800
30$ touch text #将文件的访问时间、修改时间改为当前时间
31$ stat text
32  File: `text'
33  Size: 12          Blocks: 16         IO Block: 4096   regular file
34Device: 831h/2097d  Inode: 211271681   Links: 1
35Access: (0644/-rw-r--r--)  Uid: (  514/    xxxx)   Gid: (  100/   users)
36Access: 2010-03-01 22:05:41.000000000 +0800
37Modify: 2010-03-01 22:05:41.000000000 +0800
38Change: 2010-03-01 22:05:41.000000000 +0800
39$ touch -a text # 只修改文件的访问时间
40$ stat text
41  File: `text'
42  Size: 12          Blocks: 16         IO Block: 4096   regular file
43Device: 831h/2097d  Inode: 211271681   Links: 1
44Access: (0644/-rw-r--r--)  Uid: (  514/    xxxx)   Gid: (  100/   users)
45Access: 2010-03-01 22:05:51.000000000 +0800
46Modify: 2010-03-01 22:05:41.000000000 +0800
47Change: 2010-03-01 22:05:51.000000000 +0800
48$ touch -d "01/23/2000" text #将文件时间属性改为2000年1月23号
49$ stat text
50  File: `text'
51  Size: 12          Blocks: 16         IO Block: 4096   regular file
52Device: 831h/2097d  Inode: 211271681   Links: 1
53Access: (0644/-rw-r--r--)  Uid: (  514/    xxxx)   Gid: (  100/   users)
54Access: 2000-01-23 00:00:00.000000000 +0800
55Modify: 2000-01-23 00:00:00.000000000 +0800
56Change: 2010-03-01 22:07:05.000000000 +0800
57$ touch -d "1:04am 01/24/2000" text #将文件时间属性改为2000年1月23号1:04am
58$ stat text
59  File: `text'
60  Size: 12          Blocks: 16         IO Block: 4096   regular file
61Device: 831h/2097d  Inode: 211271681   Links: 1
62Access: (0644/-rw-r--r--)  Uid: (  514/    xxxx)   Gid: (  100/   users)
63Access: 2000-01-24 01:04:00.000000000 +0800
64Modify: 2000-01-24 01:04:00.000000000 +0800
65Change: 2010-03-01 22:07:48.000000000 +0800
66$ touch -t 09010059.30 text #将文件时间属性改为9月1号0点59分30秒
67$ stat text
68  File: `text'
69  Size: 12          Blocks: 16         IO Block: 4096   regular file
70Device: 831h/2097d  Inode: 211271681   Links: 1
71Access: (0644/-rw-r--r--)  Uid: (  514/    xxxx)   Gid: (  100/   users)
72Access: 2010-09-01 00:59:30.000000000 +0800
73Modify: 2010-09-01 00:59:30.000000000 +0800
74Change: 2010-03-01 22:09:27.000000000 +0800
75$ touch -r /etc/passwd text #将文件的时间属性改为与/etc/passwd文件的时间属性相同的值
76$ stat text
77  File: `text'
78  Size: 12          Blocks: 16         IO Block: 4096   regular file
79Device: 831h/2097d  Inode: 211271681   Links: 1
80Access: (0644/-rw-r--r--)  Uid: (  514/    xxxx)   Gid: (  100/   users)
81Access: 2010-03-01 22:22:20.000000000 +0800
82Modify: 2010-01-22 21:02:50.000000000 +0800
83Change: 2010-03-01 22:22:35.000000000 +0800

扩展阅读:
什么是文件的时间属性?
在linux下,一个文件有三种时间属性: 访问时间、修改时间、状态改动时间。
    访问时间: 记录文件最近被阅读的时间(vim,cat,more等命令都能修改该值)。
    修改时间: 记录文件最近被修改的时间(ls -l命令显示的时间即为该时间)。
    状态改动时间: 记录该文件的inode节点被修改的时间。touch命令除了-d和-t选项外都会改变该时间。而且chmod,chown等命令也能改变该值。

如何查看文件的时间属性?
用stat命令可以查看文件的时间属性,见上例。
另外ls命令也可以查看文件的时间属性:
ls -l file : 查看文件修改时间
ls -lc file: 查看文件状态改动时间
ls -lu file: 查看文件访问时间

touch命令-t选项的时间格式[[CC]YY]MMDDhhmm[.ss]说明:
CC表示世纪
YY表示年
MM表示月
DD表示日
hh表示小时
mm表示分钟
ss表示秒
201001311200.34
CCYYMMDDhhmm ss
表示时间为2010年1月31日12点0分34秒
 

 

转载于:https://blog.51cto.com/holy2010/340864

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值