Linux Touch命令

touch命令使我们可以更新现有文件和目录上的时间戳,以及创建新的空文件。

在本指南中,我们将通过实际示例和最常见的命令选项的详细说明,向您展示如何使用touch命令。

Linux文件时间戳记

在讨论如何使用touch命令之前,让我们先回顾一下Linux中的文件时间戳。

Linux中的文件具有三个时间戳:

  • atime(访问时间)-上一次通过某些命令或应用程序(例如cat,vim或grep)访问/打开文件的时间。
  • mtime(修改时间)-上次修改文件内容的时间。
  • ctime(更改时间)-文件的属性或内容的最后更改时间。 该属性包括文件许可权,文件所有权或文件位置。

要显示文件状态(包括时间戳),请使用 stat 命令。

stat file_name

创建新文件需要在父目录上具有写权限。 否则,您将收到一个权限被拒绝的错误。

如何使用touch命令

当不带任何选项使用时,这是最简单的形式,如果指定为参数的文件名不存在,touch会创建一个新文件。

如果文件已经存在,touch会将文件的上次访问和修改时间更改为当前时间。

例如,如果文件 file1 不存在,以下命令将创建它,否则将更改其时间戳:

touch file1

要一次创建或修改多个文件,请指定文件名作为参数:

touch file1 file2 file3

如果您不希望touch命令创建新文件,请使用 -c--no-create) 选项。

例如,如果文件 file1 存在以下命令将更改文件时间戳,否则将不执行任何操作:

touch -c file1

仅更改访问或修改时间

默认情况下,如果未使用任何选项,touch会将文件的上次访问和修改时间更新为当前时间。 通过使用 -a-m 选项,您只能更改这些时间戳之一。

仅更改访问时间

使用 -a 仅更改文件的访问时间的选项:

touch -a file1

仅更改修改时间

使用 -m 更改文件修改时间的选项:

touch -m file1

更改修改时间时,更改时间也会被更新。

设置特定的时间戳

touch命令还允许我们使用当前时间以外的特定时间更新或创建文件。

使用 -d--date=)选项以指定日期字符串并使用它代替当前时间。

例如,要更改的最后访问时间和修改时间 file1 到2018年6月1日11:02,您将使用以下命令:

touch -d '1 June 2018 11:02' file1

日期字符串需要用单引号引起来。

您还可以为touch命令提供部分日期时间字符串。 仅提供日期,会自动将年份更改为当前年份:

touch -d '12 June' file1

使用 -t 选项以指定时间戳并使用它代替当前时间。 timestamp参数必须采用以下格式:

use [[CC]YY]MMDDhhmm[.ss]

例如,以下命令将设置最后一次访问和修改时间 file1 到当年6月1日11:02。

touch -t 06011102 file1

使用另一个文件的时间戳

-r--reference=)选项可让我们指定参考文件并使用其时间戳而不是当前时间。

例如,以下命令将告诉touch使用以下时间: file1 对于 file2

touch -r file1 file2

默认情况下,如果在符号链接上使用touch命令,它将更改其引用文件的时间戳。

使用 -h--no-dereference)修改符号链接的时间戳。

例如,更改符号链接的时间戳 symlink1 您将使用:

touch -h symlink1

结论#

到目前为止,您应该对如何使用Linux touch命令有一个很好的了解。

触摸终端

Sidebar