简述

touch 命令可以改变文档或目录时间,包括:最近访问时间、最近更改时间。也可以用于创建新文件。

| 版权声明:一去、二三里,未经博主允许不得转载。

命令介绍

  • 命令名称
    touch
  • 基本语法
    touch [选项]… 文件…
  • 功能描述
  • 更新文件的最近访问时间和最近修改时间为当前时间(默认方式)
  • 创建新文件

命令选项

选项

说明

​-a​

只更改最近访问时间

​-c, --no-create​

如果指定的问津不存在,不会创建任何新文件

​-d, --date=STRING​

使用 STRING 指定的字符串表示时间,而非当前时间

​-f​

忽略

​-h, --no-dereference​

会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者时,此选项才有用)

​-m​

只更改最近更改时间

​-r, --reference=FILE​

将指定文档或目录的时间设置为参考文档或目录的日期时间一致

​-t STAMP​

使用 [[CC]YY]MMDDhhmm[.ss] 格式的时间替代当前时间

​--time=WORD​

使用 WORD 指定的时间:access、atime、use 都等于 ​​-a​​​ 选项的效果,而 modify、mtime 等于 ​​-m​​ 选项的效果

​--help​

显示帮助信息并退出

​--version​

显示版本信息并退出

注意:​​-d​​​ 和 ​​-t​​ 选项可接受不同的时间/日期格式。

使用范例

1.创建新文件

要同时创建多个新文件,只需要将多个文件用空格隔开。

[wang@localhost test]$ touch test.txt test1.txt
[wang@localhost test]$ ll
总用量 0
-rw-rw-r--. 1 wang wang 0 1020 12:36 test1.txt
-rw-rw-r--. 1 wang wang 0 1020 12:36

2.更改文件的最近访问和最近更改时间

# 修改前,最近访问时间、最近更改时间均为 12:36:36
[wang@localhost test]$ stat test.txt
文件:"test.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:6192274 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ wang) Gid:( 1000/ wang)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2016-10-20 12:36:36.285731656 +0800
最近更改:2016-10-20 12:36:36.285731656 +0800
最近改动:2016-10-20 12:36:36.285731656 +0800
创建时间:-
[wang@localhost test]$ touch test.txt
# 修改后,最近访问时间、最近更改时间均为 12:37:28
[wang@localhost test]$ stat test.txt
文件:"test.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:6192274 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ wang) Gid:( 1000/ wang)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2016-10-20 12:37:28.546730475 +0800
最近更改:2016-10-20 12:37:28.546730475 +0800
最近改动:2016-10-20 12:37:28.546730475 +0800

3.更改最近访问时间

# 修改前,最近访问时间为 12:37:28
[wang@localhost test]$ stat test.txt
文件:"test.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:6192274 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ wang) Gid:( 1000/ wang)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2016-10-20 12:37:28.546730475 +0800
最近更改:2016-10-20 12:37:28.546730475 +0800
最近改动:2016-10-20 12:37:28.546730475 +0800
创建时间:-
[wang@localhost test]$ touch -a test.txt
# 修改后,最近访问时间为 12:44:00
[wang@localhost test]$ stat test.txt
文件:"test.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:6192274 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ wang) Gid:( 1000/ wang)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2016-10-20 12:44:00.866721613 +0800
最近更改:2016-10-20 12:37:28.546730475 +0800
最近改动:2016-10-20 12:44:00.866721613 +0800

4.更改最近更改时间

# 修改前,最近更改时间为 12:37:28 
[wang@localhost test]$ stat test.txt
文件:"test.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:6192274 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ wang) Gid:( 1000/ wang)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2016-10-20 12:44:00.866721613 +0800
最近更改:2016-10-20 12:37:28.546730475 +0800
最近改动:2016-10-20 12:44:00.866721613 +0800
创建时间:-
[wang@localhost test]$ touch -m test.txt
# 修改后,最近更改时间为 12:47:29
[wang@localhost test]$ stat test.txt
文件:"test.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:6192274 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ wang) Gid:( 1000/ wang)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2016-10-20 12:44:00.866721613 +0800
最近更改:2016-10-20 12:47:29.914716890 +0800
最近改动:2016-10-20 12:47:29.914716890 +0800

5.设定文件的时间戳

[wang@localhost test]$ ll test.txt 
-rw-rw-r--. 1 wang wang 0 1020 12:47 test.txt
# 指定时间为 2012 年 10 月 1 日 09 点 30 分 30秒
[wang@localhost test]$ touch -t 201210010930.30 test.txt
[wang@localhost test]$ ll test.txt
-rw-rw-r--. 1 wang wang 0 101 2012 test.txt
[wang@localhost test]$ stat test.txt
文件:"test.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:6192274 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ wang) Gid:( 1000/ wang)
环境:unconfined_u:object_r:user_home_t:s0
最近访问:2012-10-01 09:30:30.000000000 +0800
最近更改:2012-10-01 09:30:30.000000000 +0800
最近改动:2016-10-20 12:55:14.062706405 +0800

6.将指定文档或目录的时间设置为参考文档或目录的日期时间

# 修改前,test.txt 时间为 2012 年
[wang@localhost test]$ ll
总用量 0
-rw-rw-r--. 1 wang wang 0 1020 12:36 test1.txt
-rw-rw-r--. 1 wang wang 0 101 2012 test.txt
[wang@localhost test]$ touch -r test1.txt test.txt
# 修改后,test.txt 时间和 test1.txt 的保持一致
[wang@localhost test]$ ll
总用量 0
-rw-rw-r--. 1 wang wang 0 1020 12:36 test1.txt
-rw-rw-r--. 1 wang wang 0 1020 12:36

命令 stat 用于查看文件的相关信息,其中包含以下内容:

  • 最近访问:表示文件访问时间,当文件被读取时会更新这个时间,但是使用 more、less、tail 和 ls 等命令查看时,访问时间不会变。
  • 最近更改:表示文件的修改时间,这指的是文件内容的修改
  • 最近改动:表示文件属性改变时间,比如通过 chmod 命令更改文件属性时,会更新最近改动时间。

touch 命令以 ​​[[CC]YY]MMDDhhmm[.SS]​​ 格式指定新时间戳的日期和时间,相关变量详细信息如下所示:

参数

说明

CC

指定年份的前两位数字(即:世纪数)

YY

指定年份的后两位数字(即:某世纪中的年数)

MM

指定一年的哪一个月,1 ~ 12

DD

指定一年的哪一个天,1 ~ 31

hh

指定一天中的哪一小时,0 ~ 23

mm

指定一小时中的哪一分钟,0 ~ 59

SS

指定一分钟中的哪一秒钟,0 ~ 59