Linux touch命令用于更改文件时间戳。但touch命令的最常见用法是创建文件。
在本教程中我们将说明如何在Linux 使用touch 命令修改文件与文件夹的访问时间atime、修改时间mtime和更改时间ctime。
还说明如何使用stat命令查看文件或者目录时间戳,修改为指定时间戳,使用另一个文件的时间戳,更改符号链接时间戳。
Linux 文件时间戳
在讨论如何使用touch命令之前,首先回顾一下Linux 文件时间戳。Linux 文件有三个时间戳。
访问时间atime全称Access time。即某些命令或者应用程序,例如如cat,vim或grep打开文件的最后时间。
修改时间mtime全称Modify time,即最后一次修改文件内容的时间。更改时间ctime全称Change time即文件的属性或内容最后一次更改文件权限,文件所有权或文件位置。
stat 命令查看文件时间戳
在修改文件或者文件夹的时间戳之前,需要知道文件目录/文件夹当前时间戳,从而确定是否修改时间戳。
你可以使用stat
命令查看文件时间戳,例如命令stat file_name将会打印file_name文件的时间戳。
stat file_name
touch 命令创建文件
要创建文件,您需要具有对当目录的写权限。否则,您将收到权限拒绝的错误。
在不指定任何选项运行touch命令时,如果指定的文件不存在,touch将创建文件。如果文件已存在,touch命令将文件的访问时间和修改时间修改为当前时间。
要一次创建或修改多个文件,请指定多个文件名并使用空格符分隔文件名。同样指定的多个文件不存在则会创建。
如果您不希望touch命令创建文件,请使用-c
/--no-create
选项。ttouch命令将文件的访问时间和修改时间修改为当前时间。
touch file1
touch file1 file2 file3
touch -c file1
touch 命令修改访问时间和更改时间
默认情况下,如果未指定任何选项,touch命令将文件的访问和修改时间更新为当前时间。你可以使用touch命令的-a
和-m
选项,仅更改其中一个时间戳。
当使用touch命令的-a
选项时仅更改文件的访问时间,例如命令touch -a file1
。
使用touch命令的-m
选项仅更改文件的修改时间。更改修改时间时,更改时间也将更新。例如命令touch -m file1
。
touch -a file1 #atime
touch -m file1 #mtime
touch 命令设置时间戳
touch命令还允许我们修改的文件时间戳。使用-d
/--date=
选项指定日期字符串。
日期字符串需要用单引号括起来。您还可以为touch命令提供部分日期时间的字符串。例如仅提供日期,自动将年份更改为当前年份。
-r
/--reference=
选项允许我们指定一个参考文件,并使用它的时间戳,而不是当前的时间。
例如命令touch -d '1 June 2018 11:02' file1
将访问时间和修改时间更改为2018年6月1日11:02。
touch -d '12 June' file1
命令不指定年年份,将访问时间和修改时间更改为2022年6月12日00:00。
touch -r file1 file2
命令将file2
的时间戳写到file1
,这是使用另一个文件的时间戳示例。
touch -d '1 June 2018 11:02' file1
touch -d '12 June' file1
touch -r file1 file2
touch 命令修改符号链接时间戳
默认情况下,如果在符号链接使用touch命令修改时间戳,它将修改目标文件的时间戳。
在使用touch命令的-h
/--no-dereference
修改符号链接的时间戳时,则不会目标文件的时间戳。
touch -h symlink1
结论
至此你应该很好地理解如何使用touch命令。
-
Linux
+关注
关注
87文章
11292浏览量
209318 -
touch
+关注
关注
0文章
68浏览量
34430 -
命令
+关注
关注
5文章
683浏览量
22011 -
时间戳
+关注
关注
0文章
15浏览量
2593
发布评论请先 登录
相关推荐
评论