Linux 中的 touch 命令是用于更改文件时间戳,但touch命令的最常见用法之一包括创建新的空文件。使用touch命令您可以更改 Linux 中文件和文件夹的访问、修改和更改时间

Linux文件时间戳

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

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

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

显示包含时间戳的文件状态,可以使用该stat命令。

stat file_name

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

如何使用touch命令

在没有任何选项的情况下是使用它的最简单形式,如果指定为参数的文件名不存在,touch将创建一个新文件

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

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

touch file1

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

touch file1 file2 file3

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

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

touch -c file1

仅更改访问或修改时间

默认情况下,如果未使用任何选项,则会将文件的上次访问和修改时间更新为当前时间。通过使用-a-m选项,允许你更改其中一个时间戳

仅更改访问时间

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

touch -a file1

仅更改修改时间

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

touch -m file1

更改修改时间时,更改时间也将更新

设置特定时间戳

touch命令还允许我们更新或创建具有除当前时间之外的特定时间的文件

使用-d--date=)选项指定日期字符串并使用它而不是当前时间

例如,要将最后访问和修改时间更改为file12018年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日02日

touch -t 12061102 file1

使用另一个文件的时间戳

-r--reference=)选项允许我们指定一个参考文件,并使用它的时间戳,而不是当前的时间。

例如,以下命令将告诉touch将file2 的时间戳写到 file1

touch -r file1 file2

更改符号链接时间戳

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

使用-h--no-dereference)修改符号链接的时间戳,不会将属性的更改到其引用的文件

例如,要更改符号链接symlink1的时间戳:

touch -h symlink1

至此你应该很好地理解如何使用touch命令。如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持