Linux Touch命令

评论 0 浏览 0 2018-11-05

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选项来指定一个时间戳,并使用它来代替当前时间。时间戳参数需要采用以下格式。

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的触摸命令有了很好的了解。

最后更新2023-04-03
0 个评论
标签