Linux touch命令创建修改文件时间戳

Linux中的touch命令是用于更改文件时间戳。但touch命令的最常见用法是创建新的空文件

4 min read
By myfreax
Linux touch命令创建修改文件时间戳
Linux touch命令创建修改文件时间戳

Linux touch命令用于更改文件时间戳。但touch命令的最常见用法是创建文件。

在本教程中我们将说明如何在Linux 使用touch 命令修改文件与文件夹的访问时间atime、修改时间mtime和更改时间ctime。

还说明如何使用stat命令查看文件或者目录时间戳,修改为指定时间戳,使用另一个文件的时间戳,更改符号链接时间戳。

Linux 文件时间戳

在讨论如何使用touch命令之前,首先回顾一下Linux 文件时间戳。Linux 文件有三个时间戳。

访问时间atime全称Access time。即某些命令或者应用程序,例如如catvimgrep打开文件的最后时间。

修改时间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命令。如果您有任何疑问或评论,请在下面发表评论。

Related Articles