本文来给大家介绍另外一个比较常用的命令--touch命令,Linux touch命令 主要用来修改文件或者目录的时间属性,或者建立新文件。

转载自https://www.linuxdaxue.com/linux-command-intro-touch.html

touch 命令

一、Linux touch命令 语法

Linux touch命令 的语法格式主要如下:

touch [OPTION]... FILE...

参数说明:

-a   或--time=atime或--time=access或--time=use  只更改存取时间。
-c 或--no-create  不建立任何文档。
-d 设定时间与日期,可以使用各种不同的格式。
-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify  只更改变动时间。
-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t  使用指定的日期时间,而非现在的时间,格式与 date 指令相同。
--help 列出指令格式。
--version 列出版本讯息。

作者信息:

Written by Paul Rubin, Arnold Robbins, Jim Kingdon, David MacKenzie, and Randy Smith.

二、Linux touch命令 使用实例

1)新建文件file_new

[linuxdaxue.com@/home/linuxdaxue.com]$ls
dir1 src testDir
[linuxdaxue.com@/home/linuxdaxue.com]$touch file_new
[linuxdaxue.com@/home/linuxdaxue.com]$ls
dir1 file_new src testDir

可以看到,新建了一个名叫file_new的文件。

修改时间就是刚才建立文件的时间:

[linuxdaxue.com@/home/linuxdaxue.com]$ll file_new
-rw-r--r-- 1 linuxdaxue.com linuxdaxue.com 0 Jun 16 14:19 file_new

2)修改file_new的时间戳

在上个例子中,新建的file_new文件的时间戳是 14:19分,接下来我们使用 touch命令 修改其时间戳。

[linuxdaxue.com@/home/linuxdaxue.com]$ll file_new
-rw-r--r-- 1 linuxdaxue.com linuxdaxue.com 0 Jun 16 14:19 file_new
[linuxdaxue.com@/home/linuxdaxue.com]$touch file_new
[linuxdaxue.com@/home/linuxdaxue.com]$ll file_new
-rw-r--r-- 1 linuxdaxue.com linuxdaxue.com 0 Jun 16 14:23 file_new

可以看到,其时间戳变为了14:23分,时间戳发生了改变。

3)让file_new的时间戳与其他文件时间戳相同

[linuxdaxue.com@/home/linuxdaxue.com]$ll
total 12
drwxr-xr-x 3 linuxdaxue.com linuxdaxue.com 4096 Jun 15 11:37 dir1
-rw-r--r-- 1 linuxdaxue.com linuxdaxue.com 0 Jun 16 14:23 file_new
drwxr-xr-x 7 linuxdaxue.com linuxdaxue.com 4096 Jun 15 11:41 src
[linuxdaxue.com@/home/linuxdaxue.com]$touch -r dir1 file_new
[linuxdaxue.com@/home/linuxdaxue.com]$ll
total 12
drwxr-xr-x 3 linuxdaxue.com linuxdaxue.com 4096 Jun 15 11:37 dir1
-rw-r--r-- 1 linuxdaxue.com linuxdaxue.com 0 Jun 15 11:37 file_new
drwxr-xr-x 7 linuxdaxue.com linuxdaxue.com 4096 Jun 15 11:41 src

可以看到,执行了 touch命令 后,file_new的时间戳与dir1的时间戳相同了。

4)修改file_new时间戳为指定时间

[linuxdaxue.com@/home/linuxdaxue.com]$touch -t 201612312234.50 file_new
[linuxdaxue.com@/home/linuxdaxue.com]$ll file_new
-rw-r--r-- 1 linuxdaxue.com linuxdaxue.com 0 Dec 31 2016 file_new

执行过touch命令后,file_new的时间戳变了2016年12月31号,touch 命令 修改时间的格式如下:

[[CC]YY]MMDDhhmm[.SS]

说明:CC为年数中的前两位,即”世纪数“;

YY为年数的后两位,即某世纪中的年数。如果不给出CC的值,则touch 将把年数CCYY限定在1969--2068之内。

MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒。

这些数字组成的时间是环境变量TZ指定的时区中的一个时间。

由于系统的限制,早于1970年1月1日的时间是错误的。

05-25 21:09